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