pyqt调用继承类无法显示

问题遇到的现象和发生背景

我写出这样的代码,用Window类去调用MyWidget,MyWidget不显示,求解

img

运行结果及报错内容

MyWidget无法显示

img

  1. main你应该初始化Window
  2. 你的MyWidget需要设置一个属性'Qt.WA_StyledBackground'
import sys
from PyQt5.QtCore import Qt, QRect
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication, QWidget


class MyWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.resize(300, 300)
        self.move(100, 100)
        self.setAttribute(Qt.WA_StyledBackground, True)
        self.setStyleSheet("background-color:yellow;")

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(500, 500)
        self.move(200, 200)
        self.setStyleSheet("background-color:blue;")
        q_widget = MyWidget(self)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec())

应该是app.SetStyleSheet()在你创建app的时候你试试

你的mywidget添加在window中,也就是组件树中window是mywidget的父节点,app显示的时候应该显示window。

你是打算通过Window类调用MyWidge同时显示两个窗口吗?那在Window类中只定义了MyWidget而已,并没有把它显示出来

希望有帮助
https://b23.tv/UYyF5uA

参考链接

python类继承重复_在python中如何重写类继承来的函数?_weixin_39796149的博客-CSDN博客 一开始还真不是很适应用类(OOP)的思路来组织代码,但慢慢也发现这种方法的好处了。编程高手追求的是更快更少更清晰,即速度更快,代码更少,结构更清晰。采用OOP的代码组织结构,是否能够更快不好说,但是更少和更清晰是很明显的。类首先是一个namespace,将一堆变量和功能封装起来,更清晰了。通过继承,也实现了代码更少,相同的功能直接继承下来,代码结构呈立体的。在继承类中,如果定义了与父类型相同的函数... https://blog.csdn.net/weixin_39796149/article/details/110564885?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166745195216782391881329%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166745195216782391881329&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-6-110564885-null-null.nonecase&utm_term=pyqt%E8%B0%83%E7%94%A8%E7%BB%A7%E6%89%BF%E7%B1%BB%E6%97%A0%E6%B3%95%E6%98%BE%E7%A4%BA&spm=1018.2226.3001.4450