Объект «PySide2.QtWidgets.QMainWindow» не имеет атрибута «setSizeGripEnabled»

используя Pyside2 и команду

pyside2-uic "untitled.ui" -o "gui.py" 

Я столкнулся с таким исключением

AttributeError: 'PySide2.QtWidgets.QMainWindow' object has no
attribute 'setSizeGripEnabled'

так и не нашел решения в инете. Флаг -x не помогает. Он отвечает:

uic: Unknown option 'x'.

Мой main.py:

import sys  
from PySide2 import QtWidgets  
from PySide2.QtCore import QFile  
from gui import Ui_Dialog
        
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        ex = Ui_Dialog()
        w = QtWidgets.QMainWindow()
        ex.setupUi(w)
        w.show()
        sys.exit(app.exec_())

gui.py:

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        if not Dialog.objectName():
            Dialog.setObjectName(u"Dialog")
        Dialog.resize(511, 400)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        ...
        Dialog.setSizeGripEnabled(True)
        self.verticalLayoutWidget = QWidget(Dialog)
        ...

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Currency Converter", None))
        self.comboBox.setCurrentText("")
        ...
    # retranslateUi

person Anton Makarov    schedule 27.06.2020    source источник


Ответы (2)


Ваш код w = QtWidgets.QMainWindow() неверен

попробуйте изменить код на w = QtWidgets.QDialog()

У меня была такая же ошибка, но я решил ее с помощью этого кода.

from PySide2.QtWidgets import QApplication, QDialog

from resources.gui import Ui_notes

class Window(QDialog, Ui_notes):
  def __init__(self):
    super(Window, self).__init__()
    self.setupUi(self)

if __name__ == "__main__":
     app = QApplication(sys.argv)
     window = Window()
     window.show()
     sys.exit(app.exec_())`
person teckscam    schedule 29.10.2020

Мой объект окна в QT Designer называется Dialog, а в gui.py, созданном из файла .ui, есть такая строка:

Dialog.setSizeGripEnabled(True)

это вызывает проблему. Но если мы просто прокомментируем эту строку - UI интерфейс начнет работать!

person Anton Makarov    schedule 27.06.2020