PyQt4 常用的窗口组件

本文详细介绍了Qt中常用的窗口组件,包括按钮类、显示组件、输入组件及容器类等。每种组件都附带了简要说明,帮助读者快速了解Qt界面设计的基础知识。

扩展知识:


熟悉常用的窗口组件:

按钮类

 

QPushButton  

普通按钮

QToolButton  

工具按钮:通常在工具栏使用

QRadioButton  

单选框

QCheckBox  

复选框

QCommanLinkButton

Vista风格的命令链接按钮

QDialogButtonBox  

对话框按钮组:确定、取消

 

显示组件

 

QLabel

标签

QTextBrowser

文本区域

QGraphicsView

图像显示

QCalendarWidget

日历组件

QProgressBar

进度条

QLCDNumber

液晶数字显示

QWebView

Web浏览器视图

QDeclarativeView

显示Qt声明的用户接口

 

输入组件

QComboBox

下拉选框

QFontComboBox

字体选择

QLineEdit

单行文本框

QTextEdit

多行文本框(富文本)

QPlainTextEdit

多行文本框(纯文本)

QSpinBox

整数范围调节器

QDoubleSpinBox

实型范围调节器

QDial

环形范围调节器

QSlider

滑动调节器

QTimeEdit

时间输入框

QDateEdit

日期输入框

QDateTimeEdit

时间日期输入框

 

容器类

QFrame

帧窗口

QWidget

界面部件,所有界面对象类的基类

QToolBox

工具栏容器

QTabWidget

多标签容器

QStackedWidget

层次容器,一次只有一个可见

QScollArea

滚动区域

QGroupBox

对象组容器

QMdiArea

多文档容器

QDockWidget

悬浮容器

 

http://www.cnblogs.com/answeryi/archive/2012/09/27/2706184.html

### PyQt5 中实现窗口组件窗口大小自动调整的方法 在 PyQt5 中,可以通过合理的布局管理器(Layout Manager)以及 `sizePolicy` 的设置来实现窗口中的控件能够随着窗口大小的变化而动态调整位置和尺寸。 #### 使用 Layout 管理器 PyQt5 提供了几种常用的布局管理器,例如水平布局 (`QHBoxLayout`)、垂直布局 (`QVBoxLayout`) 和网格布局 (`QGridLayout`)。这些布局管理器会自动处理子控件的位置和大小调整[^3]。当父窗口的大小发生变化时,布局管理器会重新计算并分配空间给各个子控件。 以下是基于 `QVBoxLayout` 实现的一个简单例子: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel class MainWindow(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): layout = QVBoxLayout() # 创建一个垂直布局 label1 = QLabel("Top Label") label2 = QLabel("Middle Label") label3 = QLabel("Bottom Label") layout.addWidget(label1) # 添加到布局中 layout.addStretch(1) # 增加弹性间距 layout.addWidget(label2) layout.addStretch(1) layout.addWidget(label3) self.setLayout(layout) # 设置主窗口的布局 self.setWindowTitle("Dynamic Resize Example") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.resize(400, 300) # 初始窗口大小 window.show() sys.exit(app.exec_()) ``` 在这个例子中,通过 `addStretch()` 方法增加了可伸缩的空间,使得中间部分可以根据窗口的高度比例进行扩展或收缩[^3]。 #### 调整 sizePolicy 属性 除了使用布局管理器外,还可以单独为某些控件设置其 `sizePolicy` 属性。这允许开发者更精细地控制特定控件的行为方式。例如,将某个按钮或者输入框设为 `Expanding` 政策可以让它尽可能占据更多可用空间[^1]。 下面展示了一个简单的案例,其中 QLineEdit 控件被配置成具有扩展能力: ```python from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLineEdit, QSizePolicy class SizePolicyExample(QWidget): def __init__(self): super().__init__() hbox = QHBoxLayout() line_edit = QLineEdit('Enter text here') policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) # 宽度可变,高度固定 line_edit.setSizePolicy(policy) button = QPushButton('Submit') hbox.addWidget(line_edit) hbox.addWidget(button) self.setLayout(hbox) if __name__ == '__main__': application = QApplication([]) widget = SizePolicyExample() widget.show() application.exec_() ``` 在这里,我们设置了 `line_edit` 的策略使其宽度能自由增长以填充剩余区域,但保持恒定的高度不变[^1]。 #### 动态更新几何形状 (Geometry) 如果需要更加复杂的定制化行为,则可能需要用到手动重写 resizeEvent 函数,在该函数内部调用 setGeometry 来定义每个部件的新坐标与维度[^4]。不过这种方法通常只适用于那些无法单纯依靠标准布局解决的情况。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值