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
    #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 Online
          JonBJ Online
          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 Online
              JonBJ Online
              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 Online
                  JonBJ Online
                  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 Online
                        JonBJ Online
                        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 Online
                            JonBJ Online
                            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 Online
                                  JonBJ Online
                                  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