Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. closeEvent not running
Qt 6.11 is out! See what's new in the release blog

closeEvent not running

Scheduled Pinned Locked Moved Solved Qt for Python
36 Posts 3 Posters 19.3k Views 2 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #24

    How did you install PySide2 exactly ?

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    1 Reply Last reply
    0
    • D Offline
      D Offline
      DoubleFelix
      wrote on last edited by
      #25

      With pip install pyside6 (I use PySide6 but I was told they were the same but with more features so I'm not sure it matters)

      JonBJ 1 Reply Last reply
      0
      • D DoubleFelix

        With pip install pyside6 (I use PySide6 but I was told they were the same but with more features so I'm not sure it matters)

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by JonB
        #26

        @DoubleFelix
        PySide6 is not the same as PySide2, hence the 6 instead of 2! It's PySide for Qt6, instead of for Qt5. It's new. It does not yet have all features either.

        And I notice you are running pyuic5, which I assume from the 5 is for Qt5.

        Anyway, if it were me, I would scrub (uninstall, remove) anything Qt6/PySide6, and install Qt 5.15-ish (latest) + PySide2. (If the PySide2 comes with its own version of Qt5 [I don't know if that's how it works] that's fine, you don't need to do Qt5 separately.) And try again, at least to see how that fares in comparison.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #27

          Is it your system pip ? Conda ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • D Offline
            D Offline
            DoubleFelix
            wrote on last edited by DoubleFelix
            #28

            @JonB I have uninstalled PySide6 and installed PySide2 and I get the same error.
            @SGaist I don't think it is but I'm not sure how to tell

            I attempted to use a mix of PySide6's normal features with PyQt5's uic module, but using

            class TexasHoldEmServerWindow(QMainWindow):
                def __init__(self):
                    super(TexasHoldEmServerWindow, self).__init__()
                    uic.loadUi(os.path.join(os.path.dirname(__file__), "window.ui"), self)
            

            Raises this error:

            Exception has occurred: TypeError
            ('Wrong base class of toplevel widget', (<class 'topaz.server.texas_hold_em.server_window.TexasHoldEmServerWindow'>, 'QMainWindow'))
            
            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #29

              Isn't the original base widget a QWidget ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • D Offline
                D Offline
                DoubleFelix
                wrote on last edited by
                #30

                I tried using that too but it throws the same error

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #31

                  Then what base class did you select in designer ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    DoubleFelix
                    wrote on last edited by DoubleFelix
                    #32

                    The main window is QMainWindow but I have a layout inside the window (grid) which is QWidget. Inheriting either gives the same error however.

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      DoubleFelix
                      wrote on last edited by DoubleFelix
                      #33

                      I was able to get it working by using pyuic6 window.ui -o window.py
                      I have this:

                              super(TexasHoldEmServerWindow, self).__init__()
                              self.window = Ui_MainWindow
                              self.window.setupUi(self)
                      

                      But setupUi() also needs to passed a parameter called MainWindow, but I'm not sure what to give it here.

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        DoubleFelix
                        wrote on last edited by DoubleFelix
                        #34

                        I got it sort of working using a bit of code someone put in a stack overflow post:

                        from PySide6.QtCore import QMetaObject
                        from PySide6.QtUiTools import QUiLoader
                        
                        class UiLoader(QUiLoader):
                            def __init__(self, baseinstance, customWidgets=None):
                                QUiLoader.__init__(self, baseinstance)
                                self.baseinstance = baseinstance
                                self.customWidgets = customWidgets
                        
                            def createWidget(self, class_name, parent=None, name=''):
                                if parent is None and self.baseinstance:
                                    return self.baseinstance
                                else:
                                    if class_name in self.availableWidgets():
                                        widget = QUiLoader.createWidget(self, class_name, parent, name)
                                    else:
                                        try:
                                            widget = self.customWidgets[class_name](parent)
                                        except (TypeError, KeyError) as e:
                                            #raise Exception('No custom widget ' + class_name + ' found in customWidgets param of UiLoader __init__.')
                                            pass
                                    if self.baseinstance:
                                        setattr(self.baseinstance, name, widget)
                                    return widget
                        
                        def loadUi(uifile, baseinstance=None, customWidgets=None,
                                   workingDirectory=None):
                        
                            loader = UiLoader(baseinstance, customWidgets)
                        
                            if workingDirectory is not None:
                                loader.setWorkingDirectory(workingDirectory)
                        
                            widget = loader.load(uifile)
                            QMetaObject.connectSlotsByName(widget)
                            return widget
                        

                        Then I add this to my UI Class:

                                QMainWindow.__init__(self)
                                loadUi(os.path.join(os.path.dirname(__file__), "window.ui"), self)
                        

                        But it keeps saying the widget creation fails.

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          DoubleFelix
                          wrote on last edited by
                          #35

                          Wait, this is related to another issue. This one is solved.
                          Sorry for being such a pain and thank you so much.

                          I don't know how to close this

                          SGaistS 1 Reply Last reply
                          0
                          • D DoubleFelix

                            Wait, this is related to another issue. This one is solved.
                            Sorry for being such a pain and thank you so much.

                            I don't know how to close this

                            SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #36

                            @DoubleFelix said in closeEvent not running:

                            I don't know how to close this

                            AFAIK, you can't close the thread however you can either delete your post or post a link to the new thread.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            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