PyQt5在QWidget窗体中显示Qwidget的自定义类(补:完美解决)

【概览】

1、显示原生Qwidget

      1)不使用布局(绝对定位)

      2)使用布局

2、显示Qwidget的自定义类

      1)不使用布局(绝对定位)

      2)使用布

 

【知识点】

1、显示原生Qwidget

1)不使用布局(绝对定位)

这种情况下,原生QWidget部件在实例化时必须带parent参数,当然parent = self,即:  self.widget = QWidget(self)

 1 class MyWindow(QWidget):
 2     def __init__(self, parent=None):
 3         super(MyWindow,self).__init__(parent)
 4         self.resize(400, 300)
 5         
 6         # 添加原生QWidget
 7         self.widget = QWidget(self) # 注意QWidget(self) 内的self!!
 8         self.widget.setGeometry(10,10,380,250)
 9         self.widget.setStyleSheet("background-color:grey;")
10         
11         # 添加编辑框(QLineEdit)
12         self.lineEdit = QLineEdit("0",self) # 注意QLineEdit("0",self) 内的self!!
13         self.lineEdit.setGeometry(10,270,380,20)

【效果图】

2)使用布局

这种情况下,原生QWidget部件在实例化时可以不带parent参数,parent =None / self都行,即: self.widget = QWidget()self.widget = QWidget(self)

class MyWindow(QWidget):
    def __init__(self, parent=None):
        super(MyWindow,self).__init__(parent)
        self.resize(400, 300)
        layout = QGridLayout()

        # 添加原生QWidget
        self.widget = QWidget()  # 注意QWidget() 内可以没有self!!
        self.widget.setStyleSheet("background-color:grey;")
        
        # 添加编辑框(QLineEdit)
        self.lineEdit = QLineEdit("0") # 注意QLineEdit("0") 内可以没self!!

        # 放入布局内
        layout.addWidget(self.widget,0,0)
        layout.addWidget(self.lineEdit,1,0)
        self.setLayout(layout)

【效果图】

2、显示Qwidget的自定义类

1)不使用布局(绝对定位)

这种情况下,原生QWidget自定义类里面要放个东西!!不放东西的话,我也不会:(

 

 1 class MyWidget(QWidget):
 2     def __init__(self, parent=None):
 3         super(MyWidget,self).__init__(parent)
 4 
 5         #QWidget自定义类里面要放个东西!!(不放东西的话,我也不会)
 6         self.gb = QGroupBox(self)
 7         self.gb.setGeometry(0,0,200,200) #一定要有个东西把它撑起来!!不然看不到
 8         self.setStyleSheet("background-color:grey;")
 9 
10         self.do_something()
11         
12     def do_something(self):
13         pass
14 
15 
16 class MyWindow(QWidget):
17     def __init__(self, parent=None):
18         super(MyWindow,self).__init__(parent)
19         self.resize(400,300)
20 
21         # 添加自定义部件(MyWidget)
22         self.widget = MyWidget(self)
23         self.widget.setGeometry(10,10,380,240)
24 
25         
26         # 添加编辑框(QLineEdit)
27         self.lineEdit = QLineEdit("0",self)
28         self.lineEdit.setGeometry(10,260,380,20)
29 
30         

 

 

【效果图】

 

2)使用布局

这种情况下,原生QWidget部件在实例化时可以不带parent参数,parent =None / self都行,即: self.widget = QWidget()或 self.widget = QWidget(self)

 

 1 class MyWindow(QWidget):
 2     def __init__(self, parent=None):
 3         super(MyWindow,self).__init__(parent)
 4         self.resize(400,300)
 5         layout = QGridLayout()
 6         
 7         # 添加自定义部件(MyWidget)
 8         self.widget = MyWidget()
 9         
10         # 添加编辑框(QLineEdit)
11         self.lineEdit = QLineEdit("0")
12 
13         # 放入布局内
14         layout.addWidget(self.widget,0,0)
15         layout.addWidget(self.lineEdit,1,0)
16         self.setLayout(layout)
17 
18         self.setWindowTitle("4、QWidget的自定义类")

 </

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值