当前位置: 首页 > 文档资料 > PyQt 中文教程 >

布局管理(Layout Management)

优质
小牛编辑
126浏览
2023-12-01

通过指定以像素为单位测量的绝对坐标,可以将GUI小部件放置在容器窗口内。 坐标相对于setGeometry()方法定义的窗口的尺寸。

setGeometry() syntax

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

在下面的代码段中,300 x 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()

PushButton小部件添加到窗口中,并放置在右侧50像素和窗口左上角位置20像素的位置。

然而,由于以下原因,这种Absolute Positioning不合适 -

  • 即使调整窗口大小,窗口小部件的位置也不会改变。

  • 在具有不同分辨率的不同显示设备上外观可能不均匀。

  • 布局中的修改很困难,因为它可能需要重新设计整个表单。

原始和调整大小的窗口

PyQt API提供了布局类,可以更加优雅地管理容器内小部件的定位。 布局管理者优于绝对定位的优势是 -

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

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

  • 无需重新设计即可动态添加或删除小部件。

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

Sr.No.课程和描述
1QBoxLayout

QBoxLayout类垂直或水平排列小部件。 它的派生类是QVBoxLayout(用于垂直排列小部件)和QHBoxLayout(用于水平排列小部件)。

2QGridLayout

GridLayout类对象显示按行和列排列的单元格网格。 该类包含addWidget()方法。 可以通过指定单元格的行数和列数来添加任何窗口小部件。

3QFormLayout

QFormLayout是创建两个列表单的便捷方式,其中每一行包含与标签关联的输入字段。 作为约定,左列包含标签,右列包含输入字段。