开发手册 欢迎您!
软件开发者资料库

PyQt - 布局管理

PyQt布局管理 - 从简介,Hello World,主要类,使用Qt设计器,信号和插槽,布局管理,QBoxLayout,QGridLayout,QFormLayout类,QLabel小部件,QLineEdit小部件,QPushButton小部件,QRadioButton小部件,QCheckBox小部件,QComboBox开始学习PyQt Widget,QSpinBox小部件,QSlider小部件和信号,QMenuBar,QMenu和QAction小部件,QToolBar小部件,QDialog类,QMessageBox,QInputDialog,QFontDialog小部件,QFileDialog小部件,QTabWidget,QStackedWidget,QSplitter小部件,多文档界面,拖放,数据库处理,Drawing API,BrushStyle Constants,QClipboard,QDockWidget,QStatusBar Widget,QListWidget,QPixmap Class,QScrollBar Widget,QCalendar Widget。

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

setGeometry()语法

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

在下面的代码片段中,300 x 200像素尺寸的顶级窗口是显示在显示器上的位置(10,10).

import sysfrom PyQt4 import QtGuidef 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提供布局类,以便更加优雅地管理容器内小部件的定位.布局管理器优于绝对定位的优点是 :

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

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

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

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

Sr.No.Classes&说明
1QBoxLayout

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

2QGridLayout

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

3QFormLayout

QFormLayout是一种方便的方式创建两个列形式,其中每一行包含与标签关联的输入字段.按照惯例,左列包含标签,右列包含输入字段.