【概览】
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的自定义类")
</