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 1.9k 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
    #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