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
Forum Updated to NodeBB v4.3 + New Features

PyQt5 öffnen Event

Scheduled Pinned Locked Moved Solved German
19 Posts 4 Posters 2.2k 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 Online
      jsulmJ Online
      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