pyqt6 从QWidget继承的类创建的盒子无法展示

问题

打算写一个表格分页导航控件,盒子是用的QWidget

测试的时候发现问题,盒子无法显示,也无法设置css,都不生效,但是里面添加的控件是可以正常显示的

但是直接创建的QWidget却是可以显示的,就很奇怪

搜了一下才知道,QWidget继承的类,是没有绘画逻辑的,但是可以当作盒子用,只能是透明的盒子
https://cloud.tencent.com/developer/ask/sof/107459269

所以最适合做盒子的,还是QFrame

QWidget不显示
在这里插入图片描述

QFrame显示
在这里插入图片描述

QWidget做盒子不显示的代码

from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QSizePolicy, QFrame


class Test(QWidget):
    def __init__(self, parent):
        super().__init__(parent)
        self.setStyleSheet("background-color:#fff; border: 1px solid black;")
        self.setSizePolicy(size_policy)
        self.setMaximumHeight(30)
        QPushButton("你好", self)



if __name__ == '__main__':
    app = QApplication([])

    widget = QWidget()
    widget.setGeometry(400, 400, 400, 400)
    # widget.setStyleSheet("background-color:#fff; border: 1px solid black;")


    widget2 = QWidget()

    size_policy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
    widget2.setSizePolicy(size_policy)
    widget2.setMaximumHeight(30)
    widget2.setStyleSheet("background-color:#fff; border: 1px solid black;")

    widget3 = Test(widget)
    print(widget3.styleSheet())

    v_layout = QVBoxLayout(widget)
    v_layout.addWidget(widget2)
    v_layout.addWidget(widget3)

    widget3.show()
    widget.show()
    app.exec()

QFrame做盒子显示的代码

把上面的代码,class Test(QWidget):修改成class Test(QFrame):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值