问题描述
我有最简单的子类 QWidget
形式:
from PyQt6.QtWidgets import *
import sys
class Widget(QWidget):
def __init__(self,parent,*args,**kwargs):
QWidget.__init__(self,parent=parent,**kwargs)
print(self.parent().objectName())
def e(e,v,t):
sys.__excepthook__(e,t)
if __name__ == "__main__":
sys.excepthook = e
app = QApplication(sys.argv)
mainWindow = QWidget(objectName="MainWindow")
mainWindow.setLayout(QHBoxLayout(mainWindow))
widget1 = Widget(mainWindow,styleSheet="background-color: red")
widget2 = QWidget(mainWindow,styleSheet="background-color: green")
mainWindow.layout().addWidget(widget1)
mainWindow.layout().addWidget(widget2)
mainWindow.showMaximized()
app.exec_()
当我运行程序时,只显示 QWidget
,而 Widget
应该在的位置有一个空白:
如果我将 Widget
更改为 QWidget
,则窗口中会显示正确的图像:
我试过了:
-
widget1.show()
。 -
widget1.raise_()
。 -
widget1.setVisible(True)
。 -
widget1.parent().setVisible(True)
。 -
Widget
构造函数内部和外部的所有上述内容。 - 尝试了
PySide2
、PySide6
、PyQt5
、PyQt6
(app.exec_()
需要为app.exec()
,PyQt6
)。
还有:
-
Widget
打印background-color: red
,显示**kwargs are being correctly set
。 - 在
Widget
的构造函数中,打印了"MainWindow"
,说明父级设置正确,"MainWindow"
是我创建的顶层窗口的objectName({{1 }}). - 尝试使用 PyCharm 并内置 Python IDLE。
print(self.styleSheet()
构造函数中的 系统
- Python 3.9
- PyQt6.0.1/PySide6.0.1
- Windows 10
我这辈子都看不明白为什么 mainWindow
类不会显示;我做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)