Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Displaying real-time data on a 2nd window
Forum Updated to NodeBB v4.3 + New Features

Displaying real-time data on a 2nd window

Scheduled Pinned Locked Moved Unsolved General and Desktop
51 Posts 4 Posters 11.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J john_hobbyist

    I have another method that I want to call from another class. I have this code:

    class Two(CentralWindow):
        def do_something(self, checked):
        . . .
    

    I want to call the do_something method from initUI(self) ??
    I have tried google search solutions, but they show to call a method outside a class/method. I need to call the do_something method from inside initUI(self) method....

    JonBJ Online
    JonBJ Online
    JonB
    wrote on last edited by JonB
    #28

    @john_hobbyist
    Fundamental Python. Nothing special about initUI(self).

    • From within class Two: self.do_something(checked).
    • From outside class Two: class_two_instance.do_something(checked).
    1 Reply Last reply
    1
    • J Offline
      J Offline
      john_hobbyist
      wrote on last edited by john_hobbyist
      #29
      This post is deleted!
      1 Reply Last reply
      0
      • J Offline
        J Offline
        john_hobbyist
        wrote on last edited by john_hobbyist
        #30

        In order to start from somewhere, after your very useful comments I did a change in the code so that when the ct changes to call the method def onChanged(self, text) which prints "OK". However, this happens only the first time that ct changes value. All the next times it does not print "OK"...What do I miss here???

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #31

          I may sound harsh but: proper architecture.

          I would suggest to start with something really minimal to just learn to use signals and slots properly, how to manage multiple different complex widgets that are only linked together by signals and slots.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          2
          • J Offline
            J Offline
            john_hobbyist
            wrote on last edited by
            #32

            I am trying! How can I call a method before declaring it?

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #33

              You just don't.

              As I already suggested: start with Qt's basics.

              • Single widget with signals and slots within it.
              • Second widget completely unrelated to the first one
              • Connect them only after they both properly work independently
              • While doing that: write unit tests

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              2
              • J Offline
                J Offline
                john_hobbyist
                wrote on last edited by
                #34

                @SGaist Thank you, I will try it.

                Please tell me a reason that the code runs commands such as open/make a widget + QLinedit + QLabels (I checked it with print commands) but I see only the widget (window) and nothing inside... What is wrong?

                jsulmJ 1 Reply Last reply
                0
                • J john_hobbyist

                  @SGaist Thank you, I will try it.

                  Please tell me a reason that the code runs commands such as open/make a widget + QLinedit + QLabels (I checked it with print commands) but I see only the widget (window) and nothing inside... What is wrong?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #35

                  @john_hobbyist said in Displaying real-time data on a 2nd window:

                  What is wrong?

                  Please show the code, else only guessing is possible!
                  Did you add these widgets to your container widget (main window or whatever)?

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  1
                  • J Offline
                    J Offline
                    john_hobbyist
                    wrote on last edited by
                    #36

                    I am trying to embed a grid layout to the right side of the mainwidget. Imagine that I have divided the mainwidget area into 2 areas, left and side. I get this error though:

                    File "code.py", line 1643, in __init__
                      mylayout.addWidget(self.imageviewer, 1, 1)
                    TypeError: addWidget(self, QWidget, stretch: int = 0, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 3 has unexpected type 'int'
                    

                    What did I do wrong?

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #37

                      Are you sure mylayout is a QGridLayout ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      1
                      • J Offline
                        J Offline
                        john_hobbyist
                        wrote on last edited by john_hobbyist
                        #38

                        I have it like this:

                        mylayout = QHBoxLayout()
                        
                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #39

                          So since it's a QHBoxLayout, why are you trying to use it like a grid layout ?

                          The error message tells you exactly the problem you have. If you read the method documentation, you'll see that the second parameter shall be a value from the Alignment enum.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          1
                          • J Offline
                            J Offline
                            john_hobbyist
                            wrote on last edited by
                            #40
                            This post is deleted!
                            JonBJ 1 Reply Last reply
                            0
                            • J john_hobbyist

                              This post is deleted!

                              JonBJ Online
                              JonBJ Online
                              JonB
                              wrote on last edited by JonB
                              #41

                              @john_hobbyist said in Displaying real-time data on a 2nd window:

                              mylayout.addWidget(self.imageviewer, 1, 1)

                              You're not reading @SGaist's replies and understanding/acting on them. Anyway, what do you intend this line to do?

                              1 Reply Last reply
                              1
                              • J Offline
                                J Offline
                                john_hobbyist
                                wrote on last edited by
                                #42

                                @SGaist @JonB: You are right!!!! Thanks!

                                1 Reply Last reply
                                0
                                • J Offline
                                  J Offline
                                  john_hobbyist
                                  wrote on last edited by john_hobbyist
                                  #43

                                  I call the above class each time the mouse pointer changes position. The problem is that nothing is shown..but the print commands that I have embed between the below commands work!
                                  Why?
                                  I call it like this:

                                  w = Town()
                                  w.show()
                                  

                                  This is the class that I call

                                  class Town(QWidget):
                                      def __init__(self):
                                          super().__init__()
                                          import sys
                                          from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,QGridLayout,QLabel
                                          from PyQt5.QtCore import QTimer,QDateTime
                                          from PyQt5 import QtWidgets
                                          from PyQt5.QtWidgets import QApplication, QMainWindow
                                          from PyQt5 import QtCore
                                          
                                          win = QWidget()
                                          grid=QGridLayout()
                                         
                                          import pandas
                                          ct = pandas.read_csv('CurrentTown.csv')
                                          town = QLabel("town:")
                                          town.setStyleSheet("border: 1px solid black; background-color: yellow")  
                                          grid.addWidget(town, 1,1)
                                          textEdit_1 = QLineEdit(ct)
                                          textEdit_1.setReadOnly(True)
                                          grid.addWidget(textEdit_1,1,2)
                                  
                                          
                                          import os
                                          os.remove('CurrentTown.csv')
                                      
                                          self.setLayout(grid)
                                          win.setGeometry(100,100,200,100)
                                          win.setWindowTitle("Test")
                                          win.show()
                                          win.update()
                                  jsulmJ 1 Reply Last reply
                                  0
                                  • J john_hobbyist

                                    I call the above class each time the mouse pointer changes position. The problem is that nothing is shown..but the print commands that I have embed between the below commands work!
                                    Why?
                                    I call it like this:

                                    w = Town()
                                    w.show()
                                    

                                    This is the class that I call

                                    class Town(QWidget):
                                        def __init__(self):
                                            super().__init__()
                                            import sys
                                            from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,QGridLayout,QLabel
                                            from PyQt5.QtCore import QTimer,QDateTime
                                            from PyQt5 import QtWidgets
                                            from PyQt5.QtWidgets import QApplication, QMainWindow
                                            from PyQt5 import QtCore
                                            
                                            win = QWidget()
                                            grid=QGridLayout()
                                           
                                            import pandas
                                            ct = pandas.read_csv('CurrentTown.csv')
                                            town = QLabel("town:")
                                            town.setStyleSheet("border: 1px solid black; background-color: yellow")  
                                            grid.addWidget(town, 1,1)
                                            textEdit_1 = QLineEdit(ct)
                                            textEdit_1.setReadOnly(True)
                                            grid.addWidget(textEdit_1,1,2)
                                    
                                            
                                            import os
                                            os.remove('CurrentTown.csv')
                                        
                                            self.setLayout(grid)
                                            win.setGeometry(100,100,200,100)
                                            win.setWindowTitle("Test")
                                            win.show()
                                            win.update()
                                    jsulmJ Offline
                                    jsulmJ Offline
                                    jsulm
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #44

                                    @john_hobbyist said in Displaying real-time data on a 2nd window:

                                    I call it like this:

                                    Where?
                                    Please show that part of your code.
                                    Also, why do you create a new QWidget in Town which does not contain anything? Town is already a QWidget.

                                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    J 1 Reply Last reply
                                    1
                                    • jsulmJ jsulm

                                      @john_hobbyist said in Displaying real-time data on a 2nd window:

                                      I call it like this:

                                      Where?
                                      Please show that part of your code.
                                      Also, why do you create a new QWidget in Town which does not contain anything? Town is already a QWidget.

                                      J Offline
                                      J Offline
                                      john_hobbyist
                                      wrote on last edited by john_hobbyist
                                      #45

                                      @jsulm said in Displaying real-time data on a 2nd window:

                                      @john_hobbyist said in Displaying real-time data on a 2nd window:

                                      I call it like this:

                                      Where?
                                      Please show that part of your code.
                                      Also, why do you create a new QWidget in Town which does not contain anything? Town is already a QWidget.

                                      You mean this (?) :

                                      win = QWidget()
                                      . . . 
                                      win.setGeometry(100,100,200,100)
                                      win.setWindowTitle("Test")
                                      win.show()
                                      win.update()
                                      

                                      So, class Town(QWidget): makes a widget before the previous code...(?)

                                      jsulmJ 1 Reply Last reply
                                      0
                                      • J john_hobbyist

                                        @jsulm said in Displaying real-time data on a 2nd window:

                                        @john_hobbyist said in Displaying real-time data on a 2nd window:

                                        I call it like this:

                                        Where?
                                        Please show that part of your code.
                                        Also, why do you create a new QWidget in Town which does not contain anything? Town is already a QWidget.

                                        You mean this (?) :

                                        win = QWidget()
                                        . . . 
                                        win.setGeometry(100,100,200,100)
                                        win.setWindowTitle("Test")
                                        win.show()
                                        win.update()
                                        

                                        So, class Town(QWidget): makes a widget before the previous code...(?)

                                        jsulmJ Offline
                                        jsulmJ Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #46

                                        @john_hobbyist said in Displaying real-time data on a 2nd window:

                                        You mean this

                                        Yes. Why do you need win?
                                        All other widgets you create in Town are added to Town.

                                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        J 1 Reply Last reply
                                        1
                                        • jsulmJ jsulm

                                          @john_hobbyist said in Displaying real-time data on a 2nd window:

                                          You mean this

                                          Yes. Why do you need win?
                                          All other widgets you create in Town are added to Town.

                                          J Offline
                                          J Offline
                                          john_hobbyist
                                          wrote on last edited by
                                          #47

                                          @jsulm said in Displaying real-time data on a 2nd window:

                                          @john_hobbyist said in Displaying real-time data on a 2nd window:

                                          You mean this

                                          Yes. Why do you need win?
                                          All other widgets you create in Town are added to Town.

                                          And what I do with these?

                                          win.setGeometry(100,100,200,100)
                                          win.setWindowTitle("Test")
                                          win.show()
                                          win.update()
                                          

                                          I call them with self???

                                          jsulmJ 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved