QPushButton & QToolButton & QCheckBox & QRadioButton

Qt常用控件详解

        QCheckBox : 可供选取或不选取+显示文字

状态改变时,发出信号:stateChanged()。另外,可以通过isChecked()获取是否选中状态。多个QCheckBox可以和QButtonGroup组合使用,实现多项单选功能。

此外,还可以通过setTristate()设置是否开启三态(不选取,半选取,选取)。


        QPushButton :按钮

可以显示文本+图标,有点击效果,还可以设置类似QLabel功能,如:

QPushButton *button = new QPushButton("&Download", this);

可以通过快捷组合键Alt+D选中按钮。

点击可以触发事件clicked() , pressed() , released()

可以设置菜单,有弹出菜单效果


       QRadioButton : 单选

多个QRadioButton同个父对象时,各个QRadioButton互斥,选择其他一个,之前选择的变成未选择。


       QToolButton : 常和QToolBar连用,起到快捷访问功能

QToolBar通过添加QAction可自动生成QToolButton

其他功能和QPushButton功能差不多,可以设置菜单,图标等等。



::branch QTreeView 的分支指示器 ::chunk QProgressBar 的进度显示块 ::close-button QDockWidget 或 QTabBar 页面的关闭按钮 ::down-arrow QComboBox、QHeaderView(排序指示器)、QScrollBar 或 QSpinBox 的下拉箭头 ::down-button QScrollBar 或 QSpinBox 的向下按钮 ::drop-down QComboBox 的下拉按钮 ::float-button QDockWidget 的浮动按钮 ::groove QSlider 的凹槽 ::indicator QAbstractItemView、QCheckBoxQRadioButton、可勾选的 QMenu 菜单项,或可勾选的 QGroupBox 的指示器 ::handle QScrollBar、QSplitter 或 QSlider 的滑块 ::icon QAbstractItemView 或 QMenu 的图标 ::item QAbstractItemView、QMenuBar、QMenu 或 QStatusBar 的一个项 ::left-arrow QScrollBar 的向左箭头 ::menu-arrow 具有下拉菜单的 QToolButton 的下拉箭头 ::menu-button QToolButton 的菜单按钮 ::menu-indicator QPushButton 的菜单指示器 ::right-arrow QMenu 或 QScrollBar 的向右箭头 ::pane QTabWidget 的面板 ::scroller QMenu 或 QTabBar 的卷轴 ::section QHeaderView 的分段 ::separator QMenu 或 QMainWindow 的分隔器 ::tab QTabBar 或 QToolBox 的分页 ::tab-bar QTabWidget 的分页条。这个子控件只用于控制 QTabBar 在 QTabWidget 中的位置,定义分页的样式 使用::tab 子控件 ::text QAbstractItemView 的文字 ::title QGroupBox 或 QDockWidget 的标题 ::up-arrow QHeaderView(排序指示器)、QScrollBar 或 QSpinBox 的向上箭头 ::up-button QSpinBox 的向上按钮 与鼠标有关的
最新发布
10-02
在Qt中,不同控件的子控件(如`QTreeView`的分支指示器、`QProgressBar`的进度显示块)与鼠标交互的相关信息如下: ### QTreeView分支指示器 `QTreeView`的分支指示器用于展开或折叠树形结构的子项。当鼠标与分支指示器交互时,通常会触发以下操作: - **点击操作**:点击分支指示器可以展开或折叠相应的子项。可以通过`QTreeView`的信号槽机制来捕获这些操作。例如,当用户点击分支指示器时,`QTreeView`会发出`expanded(const QModelIndex &)`和`collapsed(const QModelIndex &)`信号,你可以连接这些信号到自定义的槽函数进行处理。 ```python from PyQt5.QtWidgets import QApplication, QTreeView, QStandardItemModel, QStandardItem import sys app = QApplication(sys.argv) tree_view = QTreeView() model = QStandardItemModel() root_item = QStandardItem("Root") child_item = QStandardItem("Child") root_item.appendRow(child_item) model.appendRow(root_item) tree_view.setModel(model) def on_expanded(index): print(f"Expanded: {model.itemFromIndex(index).text()}") def on_collapsed(index): print(f"Collapsed: {model.itemFromIndex(index).text()}") tree_view.expanded.connect(on_expanded) tree_view.collapsed.connect(on_collapsed) tree_view.show() sys.exit(app.exec_()) ``` ### QProgressBar进度显示块 `QProgressBar`的进度显示块代表当前的进度值。鼠标与进度显示块的交互相对较少,但可以通过一些技巧实现特定的交互效果: - **点击操作**:可以通过重写`QProgressBar`的`mousePressEvent`事件来处理鼠标点击进度显示块的操作。例如,根据点击的位置计算出对应的进度值,并更新进度条。 ```python from PyQt5.QtWidgets import QApplication, QProgressBar from PyQt5.QtCore import Qt import sys class CustomProgressBar(QProgressBar): def mousePressEvent(self, event): if event.button() == Qt.LeftButton: x = event.pos().x() width = self.width() value = (x / width) * (self.maximum() - self.minimum()) + self.minimum() self.setValue(int(value)) super().mousePressEvent(event) app = QApplication(sys.argv) progress_bar = CustomProgressBar() progress_bar.setRange(0, 100) progress_bar.show() sys.exit(app.exec_()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值