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.
  • 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