当按下按钮需要更长的时间时,窗口会变暗
Windows becomes dim when button press takes longer time
如何防止主窗口变暗,即使按钮单击事件也需要很长时间才能响应。
例如:文件 myframe.h
class MyFrame : public QFrame
{
Q_OBJECT
public:
explicit MyFrame(QWidget *parent=0);
~MyFrame();
void mousePressEvent(QMouseEvent * event);
void mouseReleaseEvent(QMouseEvent *event);
private:
Ui::MyFrame *ui;
}
file myframe.cpp
MyFrame::MyFrame(QWidget *parent):
QFrame(parent),ui(new Ui::FerryFrame)
{
ui->setupUi(this);
}
void MyFrame::mouseReleaseEvent(QMouseEvent *event)
{
// do something cost long time,
// this will make the frame background becomes dim,
}
MyFrame::~MyFrame()
{
}
有什么解决办法吗?
谢谢John
您需要为长时间运行的操作启动线程。 您可能需要在线程运行时手动灰/暗按钮或其他选项,以防止用户一遍又一遍地发出相同的命令。 有关线程的详细信息,请参阅 QT 文档:
QT 中的线程
特别注意线程池。 它们对于 GUI 事件很有用。 还要注意从线程更新用户界面的复杂性。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 问:如何使用C++中的按钮从窗口打开窗口
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- SFML RenderWindow打开窗口需要很长时间
- 延迟函数使打开的框架窗口冻结,直到指定的时间过去
- ESP32_BLE_Arduino库中的扫描窗口、间隔和扫描时间之间有什么区别
- 当按下按钮需要更长的时间时,窗口会变暗
- C++ 在窗口中提升::时间与标准:自纪元(获取当前系统时间)以来的时间
- GDI 窗口中的游戏循环/一段时间后不刷新并崩溃
- 如何在特定时间后重新启动窗口服务
- 检测用户在窗口时间的变化
- 为什么游戏窗口在特定时间后关闭
- 设置LayeredWindowAttributes以使窗口透明只是部分时间起作用
- 处理在窗口中收到的中断的时间
- 为什么我的窗口在一段时间后关闭