setSizePolicy(self, QSizePolicy): argument 1 has unexpected type 'PySide2.QtWidgets.QSizePolicy'
UI код сделан в QT designer 5.14.1. Не понимаю в чём проблема.
from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
QRadialGradient)
from PySide2.QtWidgets import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(1184, 539)
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setStyleSheet(u"background-color: rgb(27, 27, 27);")
MainWindow.setTabShape(QTabWidget.Rounded)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.Clear = QPushButton(self.centralwidget)
self.Clear.setObjectName(u"Clear")
self.Clear.setGeometry(QRect(10, 190, 131, 61))
При запуске выдаёт ошибку:
File "D:/Python Projects/Calculator/main.py", line 15, in <module>
window = MainWindow()
File "D:/Python Projects/Calculator/main.py", line 11, in __init__
self.setupUi(self)
File "D:\Python Projects\Calculator\ui_EngCalc.py", line 28, in setupUi
MainWindow.setSizePolicy(sizePolicy)
TypeError: arguments did not match any overloaded call:
setSizePolicy(self, QSizePolicy): argument 1 has unexpected type 'PySide2.QtWidgets.QSizePolicy'
setSizePolicy(self, QSizePolicy.Policy, QSizePolicy.Policy): argument 1 has unexpected type 'PySide2.QtWidgets.QSizePolicy'
Process finished with exit code 1
Код запускаемого файла.
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from ui_EngCalc import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.setupUi(self)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
app.exec_()
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Я думаю что проблема в том, что вы используете и PySide2 и PyQt5.
Пусть модуль, который вы создали в Qt Designer, называется ui_EngCalc.ui
Выполните:
pyuic5 ui_EngCalc.ui -o ui_EngCalc.py -x
и запустите main.py
main.py
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
from ui_EngCalc import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.setupUi(self)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
Автор решения: RokeJulianLockhart
→ Ссылка
setSizePolicy(self, QSizePolicy): argument 1 has unexpected type 'PySide2.QtWidgets.QSizePolicy'
Для меня проблема была в том, что я не приводил достаточно аргументов:
Код
PyQt6.QtWidgets.QDockWidget().setSizePolicy( PyQt6.QtWidgets.QSizePolicy.Policy.Fixed )Сообщение об ошибке
Exception has occurred: TypeError arguments did not match any overloaded call: setSizePolicy(self, a0: QSizePolicy): argument 1 has unexpected type 'Policy' setSizePolicy(self, hor: QSizePolicy.Policy, ver: QSizePolicy.Policy): not enough arguments
Следовательно, сработало следующее:
PyQt6.QtWidgets.QDockWidget().setSizePolicy(
PyQt6.QtWidgets.QSizePolicy.Policy.Fixed,
PyQt6.QtWidgets.QSizePolicy.Policy.Fixed
)