python控件随窗口变化_Python高级进阶#009 pyqt5中窗体的绝对布局和相对布局

一、知识回顾

1.点到了窗体的绝对布局。

2.窗体的居中方式:根据已知像素,计算窗体的起点位置。

Desktop()函数,这个函数是在Qapplication类中的。函数返回的结果QDesktopWidget对象。

想要获取水平方向,调用width函数

想要获取垂直方向,调用height函数

3.标签控件的使用qlabel

本节知识视频教程

以下开始文字讲解:

一、相对布局与绝对布局

相对布局

布局中的控件可以随着窗体的变化而变化。

布局中的控件之间的距离可以按照比例来调节。

绝对布局与相对布局的不同

1.绝对布局是直接将控件载入到窗体的位置就可以了。一般直接采用move函数移动到指定的位置后不变。

2.相对布局是要将控件放到盒布局中。一般是还要加入一个盒布局QHboxlayout(水平方向)Qvboxlayout (垂直方向),网格布局(Qgridboxlayout)

二、需要使用的组件或控件

QLineEdit控件

单行输入框:只能输入一行的文本编辑框。

QHBoxlayout水平盒布局

把所有的控件只能在水平方向上面排列,会自动一个个排列,不会重叠。默认情况下垂直居中的。

记忆方式:看H中的横线,就认为是水平布局。

三、布局排布

利用类似弹簧功能:就是直接使用盒布局的addstretch方法就可以了。

addstretch函数还可以对空白部分进行比例分割。

使用格式:

布局盒子.addstretch(弹簧比例)

弹簧比例:是指在窗体中空白布局进行指定的比例分割。

使用QVBoxlayout可以进行垂直布局,对于垂直布局的思想理解的情况下,再适当增加弹簧,可以使得布局更为灵活。

四、总结强调

1.掌握相对布局与绝对布局的区别。

2.掌握相对布局中的水平盒布局与垂直盒布局。

3.掌握盒布局中的控件比例排布的关系。

本节知识源代码:

import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QHBoxLayout,QGridLayout,QLineEdit,QLabel,QPushButtonclass MyljyClass(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle("刘金玉编程")self.setGeometry(app.desktop().width()/2-self.width()/2,50,400,300)lblCode=QLabel("验证码",self)leCode=QLineEdit(self)btnCode=QPushButton("验证",self)# leCode.move(40,0)# btnCode.move(190,0)# hlayout=QHBoxLayout(self)# hlayout.addWidget(lblCode)# hlayout.addWidget(leCode)# hlayout.addWidget(btnCode)vlayout=QVBoxLayout(self)# vlayout.addLayout(hlayout)vlayout.addWidget(lblCode)vlayout.addStretch(1)vlayout.addWidget(leCode)vlayout.addStretch(1)vlayout.addWidget(btnCode)vlayout.addStretch(2)self.show()if __name__=="__main__":app=QApplication(sys.argv)mljy=MyljyClass()app.exec_()

长按关注公众号

相关文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值