我怎么能阻止主窗口变暗,即使按钮点击事件需要很长时间才能响应。
例如: 文件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()
{
}
任何解决方案?
谢谢, 约翰
答案 0 :(得分:1)
您需要为长时间运行的操作启动一个线程。在线程运行时,您可能需要手动灰/暗按钮或其他选项,以防止用户反复发出相同的命令。有关线程的详细信息,请参阅QT文档:
特别注意线程池。它们对GUI事件很有用。还要注意从线程更新用户界面的复杂性。