python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
PyQt5布局控件QGridLayout简介
QGridLayout(网格布局)是将窗口分割成行和列的网格来进行排列,通常可以使用函数addWidget()将被管理的控件(Widget)添加到窗口中,或者使用addLayout()函数将布局(layout)添加到窗口中,也可以通过addWIdget()函数对所添加的控件设置行数与列数的跨越,最后实现网格占据多个窗格
QGridLayout类中常用的方法
QGridLayout单一的网格单元格实例
importsys
fromPyQt5.QtWidgetsimportQApplication,QWidget,QGridLayout,QPushButton
classWinform(QWidget):
def__init__(self,parent=None):
super(Winform,self).__init__(parent)
self.initUI()
definitUI(self):
#1创建QGridLayout的实例,并设置窗口的布局
grid=QGridLayout()
self.setLayout(grid)
#2创建按钮的标签列表
names=['Cls','Back','','Close',
'7','8','9','/',
'4','5','6','*',
'1','2','3','-',
'0','.','=','+']
#3在网格中创建一个位置列表
positions=[(i,j)foriinrange(5)forjinrange(4)]
#4创建按钮并通过addWIdget()方法添加到布局中
forposition,nameinzip(positions,names):
ifname=='':
continue
button=QPushButton(name)
grid.addWidget(button,*position)
self.move(300,150)
self.setWindowTitle('网格布局管理例子')
if__name__=="__main__":
app=QApplication(sys.argv)
form=Winform()
form.show()
sys.exit(app.exec_())
运行效果图如下
第一组代码:创建QGridLayout的实例,并设置窗口的布局
第二组代码:创建按钮的标签列表
第三组代码:在网格中创建一个位置列表
第四组代码:创建按钮并通过addWIdget()方法添加到布局中
QGridLayout跨越行和列的网格单元格实例
importsys
fromPyQt5.QtWidgetsimport(QWidget,QLabel,QLineEdit,QTextEdit,QGridLayout,QApplication)
classWinform(QWidget):
def__init__(self,parent=None):
super(Winform,self).__init__(parent)
self.initUI()
definitUI(self):
titleLabel=QLabel('标题')
authorLabel=QLabel('提交人')
contentLabel=QLabel('申告内容')
titleEdit=QLineEdit()
authorEdit=QLineEdit()
contentEdit=QTextEdit()
grid=QGridLayout()
grid.setSpacing(10)
grid.addWidget(titleLabel,1,0)
grid.addWidget(titleEdit,1,1)
grid.addWidget(authorLabel,2,0)
grid.addWidget(authorEdit,2,1)
grid.addWidget(contentLabel,3,0)
grid.addWidget(contentEdit,3,1,5,1)
self.setLayout(grid)
self.setGeometry(300,300,350,300)
self.setWindowTitle('故障申告')
if__name__=="__main__":
app=QApplication(sys.argv)
form=Winform()
form.show()
sys.exit(app.exec_())
运行效果示意图如下
代码分析
把titleLabel放在QGridLayout布局的第一行第0列
grid.addWidget(titleLabel,1,0)
把titleEditl放在QGridLayout布局的第一行第1列
grid.addWidget(titleEdit,1,1)
把contentLabel放在QGridLayout布局的第3行第0列
grid.addWidget(contentLabel,3,0)
把contentEdit放在QGridLayout布局的第3行第1列,跨越5行1列
grid.addWidget(contentEdit,3,1,5,1)
本文主要介绍了PyQt5布局控件QGridLayout详细使用方法与实例,更多关于PyQt5布局控件知识请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。