- PyQt5 教程
- PyQt5 - 主页
- PyQt5 - 简介
- PyQt5 - 新增功能
- PyQt5 - 你好世界
- PyQt5 - 主要类
- PyQt5 - 使用 Qt 设计器
- PyQt5 - 信号和槽
- PyQt5 - 布局管理
- PyQt5 - 基本小部件
- PyQt5 - QDialog 类
- PyQt5 - QMessageBox
- PyQt5 - 多文档界面
- PyQt5 - 拖放
- PyQt5 - 数据库处理
- PyQt5 - 绘图 API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 类
- PyQt5 有用资源
- PyQt5 - 快速指南
- PyQt5 - 有用的资源
- PyQt5 - 讨论
PyQt5 - 布局管理
通过指定以像素为单位的绝对坐标,可以将 GUI 小部件放置在容器窗口内。坐标与 setGeometry() 方法定义的窗口尺寸相关。
setGeometry() 语法
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 像素的位置。
然而,由于以下原因,这种绝对定位并不合适 -
即使调整窗口大小,小部件的位置也不会改变。
在具有不同分辨率的不同显示设备上,外观可能不统一。
布局的修改很困难,因为可能需要重新设计整个表单。
PyQt API 提供布局类,以便更优雅地管理容器内小部件的定位。布局管理器相对于绝对定位的优点是 -
窗口内的小部件会自动调整大小。
确保不同分辨率的显示设备上的外观一致。
无需重新设计即可动态添加或删除小部件。
Qt 工具包定义了可与 Qt Designer 实用程序一起使用的各种布局。
这是我们将在本章中一一讨论的类列表。