Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. PyQt5 öffnen Event
Qt 6.11 is out! See what's new in the release blog

PyQt5 öffnen Event

Scheduled Pinned Locked Moved Solved German
19 Posts 4 Posters 5.1k 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 Offline
    J Offline
    Julsenn
    wrote on last edited by
    #1

    Guten Tag,

    ich versuche beim Start eines neuen Fensters eine Definition zu laden aber finde nichts dazu. Wie kann ich beim Start des Fensters automatisch die def load ansprechen ? Vielen Dank im vorraus.

        def load(self):  
    
    
            with open("Slot1.txt", "r") as f:
               file_text1 = f.readline()                 
               self.pushButton.setText(file_text1)
    
    jsulmJ 1 Reply Last reply
    0
    • J Julsenn

      Guten Tag,

      ich versuche beim Start eines neuen Fensters eine Definition zu laden aber finde nichts dazu. Wie kann ich beim Start des Fensters automatisch die def load ansprechen ? Vielen Dank im vorraus.

          def load(self):  
      
      
              with open("Slot1.txt", "r") as f:
                 file_text1 = f.readline()                 
                 self.pushButton.setText(file_text1)
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @Julsenn Ist dieses Fenster deine eigene Classe? Wenn ja, dann kannst du https://doc.qt.io/qt-5/qwidget.html#showEvent überschreiben und dort load aufrufen.
      Oder du rufst load() dort auf wo du auch das Fenster erzeugst/anzeigst.

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

      1 Reply Last reply
      3
      • J Offline
        J Offline
        Julsenn
        wrote on last edited by
        #3

        @jsulm danke schonmal fürs antworten ich verzweifel hier :D.
        Ja die class ist meine wie kann ich dann das load() event einsetzen also wo ?

        class Ui_Handbetrieb(object):
        
         
        
            def load(self):   # anfangsevent erstellen !!!                                           
                with open("Slot1.txt", "r") as f:
                   file_text1 = f.readline()                  #zeilenangabe hinten
                   self.pushButton.setText(file_text1)
        
        1 Reply Last reply
        0
        • J Offline
          J Offline
          Julsenn
          wrote on last edited by
          #4

          jetzt sprech ich load durch einen button an aber ich will das des automatisch ausgefrührt wird beim start ohne das ich ein button klicke.

          self.Auswahlladen_btn.clicked.connect(self.load)
          
          1 Reply Last reply
          0
          • mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by mrjj
            #5

            Hi

            def showEvent(self, ev):
                load(self)
                return QWidget.showEvent(self, ev)
            

            Dies ist eine Funktion, die Qt kurz vor der Anzeige des Widgets aufruft

            JonBJ 1 Reply Last reply
            2
            • mrjjM mrjj

              Hi

              def showEvent(self, ev):
                  load(self)
                  return QWidget.showEvent(self, ev)
              

              Dies ist eine Funktion, die Qt kurz vor der Anzeige des Widgets aufruft

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #6

              @mrjj
              Yes indeed to your answer. But perhaps you should remind the OP that showEvent() will be called as the window is minimized->maximized as well as when first shown, I think, and then he wouldn't always want to re-load() that file to initialize the button? IIRC I keep a static bool first_shown state variable in the widget.

              My German isn't good enough to translate the above :)

              1 Reply Last reply
              2
              • J Offline
                J Offline
                Julsenn
                wrote on last edited by
                #7

                @JonB when the window open i want to call the def load(self) automatically

                JonBJ 1 Reply Last reply
                0
                • J Julsenn

                  @JonB when the window open i want to call the def load(self) automatically

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by JonB
                  #8

                  @Julsenn
                  I know this :) @mrjj & @jsulm are trying to tell you that you need to override the showEvent() method of your QWidget or QMainWindow (" neuen Fensters"). You will call your load() method from there.

                  1 Reply Last reply
                  2
                  • J Offline
                    J Offline
                    Julsenn
                    wrote on last edited by
                    #9

                    @JonB sorry i'm still amateur. You mean here ?

                    
                    if __name__ == "__main__":
                        
                            import sys
                        
                            app = QtWidgets.QApplication(sys.argv)
                        
                            Handbetrieb = QtWidgets.QWidget()
                        
                            ui = Ui_Handbetrieb()
                        
                            ui.setupUi(Handbetrieb)
                            Handbetrieb.show()  #here is the show event ?
                    
                        
                        
                        
                            
                        
                            sys.exit(app.exec_())
                    JonBJ 1 Reply Last reply
                    0
                    • J Julsenn

                      @JonB sorry i'm still amateur. You mean here ?

                      
                      if __name__ == "__main__":
                          
                              import sys
                          
                              app = QtWidgets.QApplication(sys.argv)
                          
                              Handbetrieb = QtWidgets.QWidget()
                          
                              ui = Ui_Handbetrieb()
                          
                              ui.setupUi(Handbetrieb)
                              Handbetrieb.show()  #here is the show event ?
                      
                          
                          
                          
                              
                          
                              sys.exit(app.exec_())
                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by JonB
                      #10

                      @Julsenn
                      I can't type it all, but you will need to change over to like:

                      class MeinHandbetrieb(QtWidgets.QWidget):
                      
                          def showEvent(self, ev):
                              load(self)
                              return QWidget.showEvent(self, ev)
                      ...
                      
                      Handbetrieb = MeinHandbetrieb()
                      ...
                      Handbetrieb.show()
                      
                      

                      I know you are an amateur, but for this and other things Qt you have to understand C++ sub-classing.

                      1 Reply Last reply
                      2
                      • J Offline
                        J Offline
                        Julsenn
                        wrote on last edited by
                        #11

                        ok thank you but i don't know how i implement this when i use the code always comes NameError: name 'Ui_Handbetrieb' is not defined. . :(

                        1 Reply Last reply
                        0
                        • J Offline
                          J Offline
                          Julsenn
                          wrote on last edited by
                          #12
                          from PyQt5 import QtCore, QtGui, QtWidgets
                          
                          
                          class Ui_MainWindow(object):
                          
                              def save_text(self):
                                  with open("test.txt", "w") as f:
                                      text = self.eingabe_1.toPlainText()
                                      f.write(text)
                          
                              def open_text(self):                    #this automatically when window start
                                  with open("test.txt", "r") as f:
                                     file_text = f.readlines()[0]                 
                                     self.eingabe_2.setText(file_text)
                              
                              
                              def setupUi(self, MainWindow):
                                  MainWindow.setObjectName("MainWindow")
                                  MainWindow.resize(800, 600)
                                  self.centralwidget = QtWidgets.QWidget(MainWindow)
                                  self.centralwidget.setObjectName("centralwidget")
                                  self.eingabe_1 = QtWidgets.QTextEdit(self.centralwidget)
                                  self.eingabe_1.setGeometry(QtCore.QRect(80, 180, 301, 51))
                                  self.eingabe_1.setObjectName("eingabe_1")
                          
                          
                                  
                                  self.eingabe_2 = QtWidgets.QTextEdit(self.centralwidget)
                                  self.eingabe_2.setGeometry(QtCore.QRect(80, 260, 301, 51))
                                  self.eingabe_2.setObjectName("eingabe_2")
                          
                          
                                  
                                  self.speichern_btn = QtWidgets.QPushButton(self.centralwidget)
                                  self.speichern_btn.setGeometry(QtCore.QRect(420, 180, 121, 51))
                                  self.speichern_btn.setObjectName("speichern_btn")
                          
                                  self.speichern_btn.clicked.connect(self.save_text)
                                  
                                  self.oeffnen_btn = QtWidgets.QPushButton(self.centralwidget)
                                  self.oeffnen_btn.setGeometry(QtCore.QRect(580, 180, 131, 51))
                                  self.oeffnen_btn.setObjectName("oeffnen_btn")
                          
                                  self.oeffnen_btn.clicked.connect(self.open_text)
                                  
                                  MainWindow.setCentralWidget(self.centralwidget)
                                  self.menubar = QtWidgets.QMenuBar(MainWindow)
                                  self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
                                  self.menubar.setObjectName("menubar")
                                  MainWindow.setMenuBar(self.menubar)
                                  self.statusbar = QtWidgets.QStatusBar(MainWindow)
                                  self.statusbar.setObjectName("statusbar")
                                  MainWindow.setStatusBar(self.statusbar)
                          
                                  self.retranslateUi(MainWindow)
                                  QtCore.QMetaObject.connectSlotsByName(MainWindow)
                          
                              def retranslateUi(self, MainWindow):
                                  _translate = QtCore.QCoreApplication.translate
                                  MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
                                  self.speichern_btn.setText(_translate("MainWindow", "Speichern"))
                                  self.oeffnen_btn.setText(_translate("MainWindow", "Öffnen"))
                          
                          
                          if __name__ == "__main__":
                              import sys
                              app = QtWidgets.QApplication(sys.argv)
                              MainWindow = QtWidgets.QMainWindow()
                              ui = Ui_MainWindow()
                              ui.setupUi(MainWindow)
                              MainWindow.show()
                              sys.exit(app.exec_())
                          
                          
                          JonBJ 1 Reply Last reply
                          0
                          • J Julsenn
                            from PyQt5 import QtCore, QtGui, QtWidgets
                            
                            
                            class Ui_MainWindow(object):
                            
                                def save_text(self):
                                    with open("test.txt", "w") as f:
                                        text = self.eingabe_1.toPlainText()
                                        f.write(text)
                            
                                def open_text(self):                    #this automatically when window start
                                    with open("test.txt", "r") as f:
                                       file_text = f.readlines()[0]                 
                                       self.eingabe_2.setText(file_text)
                                
                                
                                def setupUi(self, MainWindow):
                                    MainWindow.setObjectName("MainWindow")
                                    MainWindow.resize(800, 600)
                                    self.centralwidget = QtWidgets.QWidget(MainWindow)
                                    self.centralwidget.setObjectName("centralwidget")
                                    self.eingabe_1 = QtWidgets.QTextEdit(self.centralwidget)
                                    self.eingabe_1.setGeometry(QtCore.QRect(80, 180, 301, 51))
                                    self.eingabe_1.setObjectName("eingabe_1")
                            
                            
                                    
                                    self.eingabe_2 = QtWidgets.QTextEdit(self.centralwidget)
                                    self.eingabe_2.setGeometry(QtCore.QRect(80, 260, 301, 51))
                                    self.eingabe_2.setObjectName("eingabe_2")
                            
                            
                                    
                                    self.speichern_btn = QtWidgets.QPushButton(self.centralwidget)
                                    self.speichern_btn.setGeometry(QtCore.QRect(420, 180, 121, 51))
                                    self.speichern_btn.setObjectName("speichern_btn")
                            
                                    self.speichern_btn.clicked.connect(self.save_text)
                                    
                                    self.oeffnen_btn = QtWidgets.QPushButton(self.centralwidget)
                                    self.oeffnen_btn.setGeometry(QtCore.QRect(580, 180, 131, 51))
                                    self.oeffnen_btn.setObjectName("oeffnen_btn")
                            
                                    self.oeffnen_btn.clicked.connect(self.open_text)
                                    
                                    MainWindow.setCentralWidget(self.centralwidget)
                                    self.menubar = QtWidgets.QMenuBar(MainWindow)
                                    self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
                                    self.menubar.setObjectName("menubar")
                                    MainWindow.setMenuBar(self.menubar)
                                    self.statusbar = QtWidgets.QStatusBar(MainWindow)
                                    self.statusbar.setObjectName("statusbar")
                                    MainWindow.setStatusBar(self.statusbar)
                            
                                    self.retranslateUi(MainWindow)
                                    QtCore.QMetaObject.connectSlotsByName(MainWindow)
                            
                                def retranslateUi(self, MainWindow):
                                    _translate = QtCore.QCoreApplication.translate
                                    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
                                    self.speichern_btn.setText(_translate("MainWindow", "Speichern"))
                                    self.oeffnen_btn.setText(_translate("MainWindow", "Öffnen"))
                            
                            
                            if __name__ == "__main__":
                                import sys
                                app = QtWidgets.QApplication(sys.argv)
                                MainWindow = QtWidgets.QMainWindow()
                                ui = Ui_MainWindow()
                                ui.setupUi(MainWindow)
                                MainWindow.show()
                                sys.exit(app.exec_())
                            
                            
                            JonBJ Offline
                            JonBJ Offline
                            JonB
                            wrote on last edited by
                            #13

                            @Julsenn

                                ui = Ui_MainWindow()
                                ui.setupUi(MainWindow)
                                # insert the following line
                                # (not the best way to do it, but simplest from where you are now)
                                ui.open_text()
                                MainWindow.show()
                            
                            1 Reply Last reply
                            2
                            • J Offline
                              J Offline
                              Julsenn
                              wrote on last edited by
                              #14

                              @JonB thank you so much, finally it works :D :D so easy :D

                              JonBJ 1 Reply Last reply
                              1
                              • J Julsenn

                                @JonB thank you so much, finally it works :D :D so easy :D

                                JonBJ Offline
                                JonBJ Offline
                                JonB
                                wrote on last edited by
                                #15

                                @Julsenn
                                Yes :) But it probably is not the right way of doing it.

                                When do you think you are going to call your save_text()? You are going to have a problem trying to do that the same way... :(

                                1 Reply Last reply
                                0
                                • J Offline
                                  J Offline
                                  Julsenn
                                  wrote on last edited by
                                  #16

                                  @JonB i dont want to call the save_text its just a TestWindow in my Main Projekt i dont have the save_text. Thank you.

                                  1 Reply Last reply
                                  0
                                  • J Offline
                                    J Offline
                                    Julsenn
                                    wrote on last edited by
                                    #17

                                    but now when i start the window from a other window it does not work ? :(

                                    JonBJ 1 Reply Last reply
                                    0
                                    • J Julsenn

                                      but now when i start the window from a other window it does not work ? :(

                                      JonBJ Offline
                                      JonBJ Offline
                                      JonB
                                      wrote on last edited by
                                      #18

                                      @Julsenn
                                      Don't know what you mean. You can see the code and how it works, so long as ui.open_text() is called before whatever window has the self.pushButton() is shown then the text will be read in & set. Use a debugger, or put in some print()-type statements, to see what is/is not being called at what point. That is what developing programs is all about :)

                                      1 Reply Last reply
                                      0
                                      • J Offline
                                        J Offline
                                        Julsenn
                                        wrote on last edited by
                                        #19

                                        @JonB okey thanks i try

                                        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