0

ボタンクリックイベントの応答に時間がかかる場合でも、メインウィンドウが暗くなるのを防ぐにはどうすればよいですか。

例: ファイル 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()
{
}

解決策はありますか?

ありがとう、ジョン

4

1 に答える 1

1

長時間実行される操作のためにスレッドを開始する必要があります。ユーザーが同じコマンドを何度も発行するのを防ぐために、スレッドの実行中に手動でグレー/薄暗いボタンまたはその他のオプションが必要になる場合があります。スレッド化の詳細については、QT ドキュメントを参照してください。

QT でのスレッド化

スレッド プールには特に注意してください。これらは GUI イベントに役立ちます。また、スレッドからユーザー インターフェイスを更新する複雑さにも注意してください。

于 2015-04-14T02:41:12.817 に答える