Windows становится тусклой, когда нажатие кнопки занимает больше времени

Как я мог предотвратить, чтобы главное окно стало тусклым, даже событие нажатия кнопки занимает много времени, чтобы ответить.

Например:
файл 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

Решение

Вам нужно запустить поток для длительных операций. Вам может понадобиться вручную серые / тусклые кнопки или другие параметры во время работы потока, чтобы пользователь не мог повторять одни и те же команды снова и снова. Смотрите документацию по QT для уточнения потоков:

Threading в QT

Обратите особое внимание на пулы потоков. Они полезны для событий GUI. Также следует помнить о сложностях обновления пользовательского интерфейса из потоков.

1

Другие решения


По вопросам рекламы [email protected]