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

PyQt5 öffnen Event

Scheduled Pinned Locked Moved Solved German
19 Posts 4 Posters 5.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
    #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
                                    • Unsolved