PyQt5——布局管理

PyQt5——布局管理 Qt Designer提供了四种窗口布局方式分别是垂直布局Vertical Layout、水平布局Horizontal Layout、栅格布局Grid Layout和表单布局Form Layout垂直布局控件默认按照从上到下的顺序进行纵向添加水平布局控件默认按照从左到右的顺序横向添加。栅格布局将窗口控件放入一个网格中然后将它们合理地划分为若干行(row)和列(column)。表单布局控件以两列的形式布局在表单中使用布局管理器布局打开Qt Designer新建一个Widget空间然后放入两个子控件一个文本框(lineEdit)和一个按钮(pushButton)。选中两个控件然后单击鼠标右键然后在弹出的快捷菜单中选择布局的子菜单就可以指定该控件的布局方式选择水平布局# -*- coding: utf-8 -*-fromPyQt5importQtCore,QtGui,QtWidgetsclassUi_Form(object):defsetupUi(self,Form):Form.setObjectName(Form)Form.resize(889,682)self.widgetQtWidgets.QWidget(Form)self.widget.setGeometry(QtCore.QRect(310,50,216,25))self.widget.setObjectName(widget)self.horizontalLayoutQtWidgets.QHBoxLayout(self.widget)self.horizontalLayout.setContentsMargins(0,0,0,0)self.horizontalLayout.setObjectName(horizontalLayout)self.lineEditQtWidgets.QLineEdit(self.widget)self.lineEdit.setObjectName(lineEdit)self.horizontalLayout.addWidget(self.lineEdit)self.pushButtonQtWidgets.QPushButton(self.widget)self.pushButton.setObjectName(pushButton)self.horizontalLayout.addWidget(self.pushButton)self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)defretranslateUi(self,Form):_translateQtCore.QCoreApplication.translate Form.setWindowTitle(_translate(Form,Form))self.pushButton.setText(_translate(Form,确定))新建一个MainWindow然后对控件进行各种各样的布局容器布局容器控件就是指能够容纳子控件的控件使用容器控件目的就是将容器控件中的控件归为一类已有别于其他控件。在左侧容器(containers)导航栏中托人一个Frame控件然后放入Label、LineEdit和Button控件。# -*- coding: utf-8 -*-fromPyQt5importQtCore,QtGui,QtWidgetsclassUi_Form(object):defsetupUi(self,Form):Form.setObjectName(Form)Form.resize(889,682)self.frameQtWidgets.QFrame(Form)self.frame.setGeometry(QtCore.QRect(250,130,264,43))self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)self.frame.setFrameShadow(QtWidgets.QFrame.Raised)self.frame.setObjectName(frame)self.horizontalLayoutQtWidgets.QHBoxLayout(self.frame)self.horizontalLayout.setObjectName(horizontalLayout)self.labelQtWidgets.QLabel(self.frame)self.label.setObjectName(label)self.horizontalLayout.addWidget(self.label)self.lineEditQtWidgets.QLineEdit(self.frame)self.lineEdit.setObjectName(lineEdit)self.horizontalLayout.addWidget(self.lineEdit)self.pushButtonQtWidgets.QPushButton(self.frame)self.pushButton.setObjectName(pushButton)self.horizontalLayout.addWidget(self.pushButton)self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)defretranslateUi(self,Form):_translateQtCore.QCoreApplication.translate Form.setWindowTitle(_translate(Form,Form))self.label.setText(_translate(Form,姓名))self.pushButton.setText(_translate(Form,确定))打开Qt Designer新建一个主窗口中拖到一个PushButton放在窗口中查看右侧是属性编辑器绝对布局Geometry属性在PyQt中主要用来设置控件在窗口中的绝对坐标于自身控件的大小。这里设置的意思就是按钮左上角距离主窗口右侧为280px上侧为130px宽度为75px高度为23px。然后再添加一些控件minimumSize和maximumSize属性minimumSize和maximumSize属性用来设置控件在布局管理器中的最小尺寸和最大尺寸。