一、知识回顾
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 sys from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QHBoxLayout,QGridLayout,QLineEdit,QLabel,QPushButton class 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_()