python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
作者:jia666666 时间:2023-08-11 19:10:44
PyQt5布局控件QFormLayout简介
QFormLayout是label-field式的表单布局,顾明思议,就是实现表单方式的布局,表单是提示用户进行交互的一种模式,主要有两列组成,第一列用于显示信息,给用户提示,一般叫做label域,第二列需要用户进行选择或输入,一般叫做field域,label与field的关系就是label关联field
QFormLayout表单布局的使用实例
import sys
from PyQt5.QtWidgets import QApplication ,QWidget ,QFormLayout , QLineEdit, QLabel
class Winform(QWidget):
def __init__(self,parent=None):
super(Winform,self).__init__(parent)
self.setWindowTitle("窗体布局管理例子")
self.resize(400, 100)
fromlayout = QFormLayout()
labl1 = QLabel("标签1")
lineEdit1 = QLineEdit()
labl2 = QLabel("标签2")
lineEdit2 = QLineEdit()
labl3 = QLabel("标签3")
lineEdit3 = QLineEdit()
fromlayout.addRow(labl1, lineEdit1)
fromlayout.addRow(labl2, lineEdit2)
fromlayout.addRow(labl3, lineEdit3)
//fromlayout->setRowWrapPolicy(QFormLayout::WrapLongRows);//该参数通常适用于小屏幕中,当标签和文本框在本行显示不全时,文本框会显示在下一行,使得标签独占一行
fromlayout->setLabelAlignment(Qt::AlignLeft);//设置标签的对齐方式
self.setLayout(fromlayout)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Winform()
form.show()
sys.exit(app.exec_())
运行效果示意图
setRowWrapPolicy(RowWrapPolicy policy)函数的参数有三个可选项:
QFormLayout::DontWrapRows:该参数的含义是文本框总是出现在标签的后面,其中标签被赋予足够的水平空间以适应表单中出现的最宽的标签,其余的空间被赋予文本框。
QFormLayout::WrapLongRows:该参数通常适用于小屏幕中,当标签和文本框在屏幕的当前行显示不全时,文本框会显示在下一行,使得标签独占一行。
QFormLayout::WrapAllRows:该参数表示标签总是在文本框的上一行。
分别对应的结果如下:
QFormLayout布局管理器嵌套
根据AddRow函数的参数来看我们在添加表单项除了可以添加Widget组件以外还可以添加其他的布局管理器。
QFormLayout* layout = new QFormLayout();//顶级布局管理器
QVBoxLayout* vlayout = new QVBoxLayout();//被嵌套使用的布局管理器
QLineEdit* text1 = new QLineEdit();
QLineEdit* text2 = new QLineEdit();
QLineEdit* text3 = new QLineEdit();
vlayout->addWidget(text2);//子管理器布局
vlayout->addWidget(text3);
layout->addRow("Name:",text1);//往QFormLayout中添加表项
layout->addRow("Tel:",vlayout);
layout->setSpacing(10);
setLayout(layout);//设置顶级布局管理器
this->setWindowTitle("FTP");
输出结果为:
小结
QFormLayout以表单的形式进行管理界面组件
通过使用QFormLayout可以发现其设置比较简洁明了
QFormLayout和QBoxLayout以及QGridLayout一样都支持布局管理器的嵌套使用
本文主要讲解了PyQt5表单布局控件QFormLayout详细使用方法与实例,更多关于PyQt5布局控件使用方法请查看下面的相关链接
来源:https://blog.csdn.net/jia666666/article/details/81701359
标签:python,PyQt5,布局
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
5步让你的CSS样式表成功减肥
2009-08-02 21:27:00
![](https://img.aspxhome.com/file/UploadPic/20098/2/css-01-85s.gif)
微信小程序录音实现功能并上传(使用node解析接收)
2024-04-16 08:46:56
一小时学会TensorFlow2之大幅提高模型准确率
2021-07-25 16:25:20
![](https://img.aspxhome.com/file/2023/0/109370_0s.png)
Python中pymysql 模块的使用详解
2024-01-16 21:07:25
MySql表、字段、库的字符集修改及查看方法
2024-01-19 19:39:38
详解在Python中以绝对路径或者相对路径导入文件的方法
2021-10-09 19:37:24
![](https://img.aspxhome.com/file/2023/5/103635_0s.png)
Python中的基本数据类型讲解
2021-04-29 07:07:24
详解git reset --hard 和 git reset --soft区别
2023-04-06 09:04:39
![](https://img.aspxhome.com/file/2023/6/132356_0s.png)
javascript结合ajax读取txt文件内容
2024-04-30 10:14:58
解决DataFrame排序sort的问题
2023-07-04 15:37:35
Python flask 框架使用flask-login 模块的详细过程
2021-05-02 04:38:08
keras实现VGG16 CIFAR10数据集方式
2023-08-19 08:27:08
![](https://img.aspxhome.com/file/2023/4/103664_0s.jpg)
Python安装selenium包详细过程
2023-04-12 00:05:31
![](https://img.aspxhome.com/file/2023/1/72941_0s.png)
Python socket如何解析HTTP请求内容
2022-05-06 20:09:23
利用Python写个摸鱼监控进程
2022-11-04 10:40:45
![](https://img.aspxhome.com/file/2023/3/115133_0s.jpg)
vscode配置setting.json文件实现eslint自动格式代码
2022-06-14 00:53:05
![](https://img.aspxhome.com/file/2023/8/132468_0s.png)
详解Python中的Cookie模块使用
2023-01-02 21:30:39
![](https://img.aspxhome.com/file/2023/0/107290_0s.jpg)
如何利用Tensorflow2进行猫狗分类识别
2021-06-29 18:58:12
![](https://img.aspxhome.com/file/2023/0/107000_0s.png)
python datetime 和时间戳互相转换问题
2023-12-31 05:32:26
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2023-04-28 19:03:53
![](https://img.aspxhome.com/file/2023/2/71572_0s.gif)