python的pyside6无法正确使用qt designer导出的py文件
pyside6的版本为 6.7.0使用qt designer画了个只有一个button和一个布局的ui后,导出py代码
使用如下代码加载该.py文件
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
报错
TypeError: 'PySide6.QtWidgets.QBoxLayout.addLayout' called with wrong argument types:
PySide6.QtWidgets.QBoxLayout.addLayout(QVBoxLayout)
Supported signatures:
PySide6.QtWidgets.QBoxLayout.addLayout(PySide6.QtWidgets.QLayout, int = 0)
有没有大佬知道这个是什么原因报错,之前用的pyside6版本6.1.3的时候这种用法是可行的,是最新版更新用法了吗 妙 不错很好用的 错误信息 TypeError: 'PySide6.QtWidgets.QBoxLayout.addLayout' called with wrong argument types
表明你在尝试将一个 QVBoxLayout 对象添加到 QBoxLayout 中,但是 addLayout 方法的参数类型不匹配。
在 PySide6 6.7.0 版本中, QBoxLayout.addLayout 方法可能只接受 QLayout 类型的参数,而你传入的 QVBoxLayout 虽然继承自 QLayout,但可能不被视为相同类型。
有几种方法可以尝试解决这个问题:
1. 强制转换类型: 尝试将 QVBoxLayout 对象转换为 QLayout 类型,再将其添加到 QBoxLayout 中。例如:
layout = self.ui.verticalLayout# 假设verticalLayout是QVBoxLayout对象
self.ui.horizontalLayout.addLayout(QLayout(layout))# 将verticalLayout转换为QLayout
2. 使用addItem: 如果你的 QBoxLayout 是水平或垂直布局,可以尝试使用 addItem 方法添加控件,而不是添加布局。例如:
button = QPushButton("按钮")
self.ui.horizontalLayout.addWidget(button)
建议查看官方文档
爱喝牛奶的小孩 发表于 2024-4-11 10:19
错误信息 TypeError: 'PySide6.QtWidgets.QBoxLayout.addLayout' called with wrong argument types
表明 ...
实测不需要转换
from PySide6 import QtWidgets
b = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.Direction.LeftToRight)
a = QtWidgets.QVBoxLayout()
b.addLayout(a)
页:
[1]