Как я мог предотвратить, чтобы главное окно стало тусклым, даже событие нажатия кнопки занимает много времени, чтобы ответить.
Например:
файл 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()
{
}
Любое решение?
Спасибо,
Джон
Вам нужно запустить поток для длительных операций. Вам может понадобиться вручную серые / тусклые кнопки или другие параметры во время работы потока, чтобы пользователь не мог повторять одни и те же команды снова и снова. Смотрите документацию по QT для уточнения потоков:
Обратите особое внимание на пулы потоков. Они полезны для событий GUI. Также следует помнить о сложностях обновления пользовательского интерфейса из потоков.