QPushButton按下后,界面发生变化,样式不变的情况

一、工作中有时候遇到按下按钮后,界面关闭或者隐藏。界面下次在显示出来的时候,按钮的样式还是按下或者hover的状态。设置按钮属性,每次按下后槽函数设置。

1.pBtn->setAttribute(Qt::WA_UnderMouse, false);

2.或者使用

QHoverEvent e(QEvent::HoverLeave, QPoint(80, 80), QPoint(0, 0));

QApplication::sendEvent(pBtn, &e);

### QT UI界面设计与实现 #### 设计工具 QT 提供了一个名为 Designer 的内置程序,用于进行可视化的 UI 效果拖拽设计。通过该工具,开发者能够轻松创建复杂的用户界面并调整其布局[^1]。 #### 开发流程 对于 Python 用户而言,PyQt5 是一种流行的库选项,它允许开发者利用 Qt 功能构建跨平台的应用程序。为了上手 PyQt5 进行 UI 界面的设计,建议先学习基础知识点,并熟悉如何将 .ui 文件转换为可执行的 Python 脚本文件。此过程通常涉及两个主要步骤:一是使用 Designer 工具完成初步设计;二是运行特定命令(如 `pyuic`),将 `.ui` 文件转化为对应的 Python 代码[^2]。 #### 控件操作实例 在实际项目中,可能需要动态控制界面上不同组件的行为。例如,在一个主窗口类 (`MainWindow`) 中响应按钮点击事件时,可以通过修改堆叠小部件 (Stacked Widget) 的索引来切换显示的内容页面: ```cpp void MainWindow::on_pushButton_2_clicked() { static int i = 0; // 静态变量保持状态不变 ui->stackedWidget->setCurrentIndex(++i % 4); // 循环设置当前页码 } ``` 上述片段展示了当某个按钮被按下后,如何改变 StackedWidget 当前展示的小部件索引位置[^3]。 #### 布局管理 如果遇到无法正常移动控件的情况,则可能是由于未正确应用或解除现有的布局策略所致。另外值得注意的是某些特殊类型的容器比如 QListWidget 可以用来呈现一系列条目,并支持自定义每一条目的外观形式——这可通过 setItemWidget 方法来达成[^4]。 ```python from PyQt5 import QtWidgets class CustomListWidgetItem(QtWidgets.QWidget): def __init__(self, text, parent=None): super().__init__(parent) layout = QtWidgets.QHBoxLayout(self) label = QtWidgets.QLabel(text) button = QtWidgets.QPushButton("Action") layout.addWidget(label) layout.addWidget(button) list_widget = QtWidgets.QListWidget() for item_text in ["Item 1", "Item 2"]: custom_item = CustomListWidgetItem(item_text) list_item = QtWidgets.QListWidgetItem(list_widget) list_widget.setItemWidget(list_item, custom_item) list_widget.show() ``` 以上脚本示范了怎样向 QListWidget 添加带有个性化样式的子项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值