PyQt5 布局管理

PyQt5 布局管理

使用像素来指定GUI小部件在容器窗口中的绝对坐标可以将其放置在容器窗口中。这些坐标相对于使用setGeometry()方法定义的窗口尺寸来确定。

setGeometry()语法

QWidget.setGeometry(xpos, ypos, width, height)

以下代码片段中,顶级窗口的尺寸为300像素宽,200像素高,显示在屏幕上的位置为(10, 10)。

import sys
from PyQt4 import QtGui

def window():
   app = QtGui.QApplication(sys.argv)
   w = QtGui.QWidget()

   b = QtGui.QPushButton(w)
   b.setText("Hello World!")
   b.move(50,20)

   w.setGeometry(10,10,300,200)
   w.setWindowTitle(“PyQt”)
   w.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

A PushButton widget is added in the window and placed at a position 50 pixels towards right and 20 pixels below the top left position of the window.

窗口中添加了一个 PushButton 控件,并将其放置在窗口左上角位置的右侧50个像素,下方20个像素的位置。

由于以下原因,这种绝对定位并不适合使用:

  • 即使调整窗口尺寸,控件的位置也不会改变。

  • 在不同分辨率的显示设备上,外观可能不一致。

  • 修改布局较为困难,可能需要重新设计整个表单。

PyQt5 布局管理

PyQt API提供了布局类,用于更优雅地管理容器中小部件的位置。布局管理器相对于绝对定位的优点包括:

  • 窗口内的小部件会自动调整大小。

  • 确保在具有不同分辨率的显示设备上显示一致的外观。

  • 可以在不必重新设计的情况下动态添加或删除小部件。

Qt工具包定义了各种可在Qt Designer工具中使用的布局。

PyQt5 布局管理

这是本章我们将逐一讨论的类的列表。

序号 类别与描述
1 QBoxLayout QBoxLayout类可将小部件垂直或水平排列。它的派生类有QVBoxLayout(用于垂直排列小部件)和QHBoxLayout(用于水平排列小部件)。
2 QGridLayout GridLayout类对象呈现为行和列排列的单元格网格。该类包含addWidget()方法,可以通过指定单元格的行数和列数来添加任何小部件。
3 QFormLayout QFormLayout是一种方便的创建两列表单的方法,其中每行包含一个与标签相关联的输入字段。按照惯例,左列包含标签,右列包含一个输入字段。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程