qtアプリケーションを作成するときにuiクラスを使用する方法

私はいくつかのチェックアウト作業を行うqt GUIを作成しました。これはラベルに結果を表示します。私はQTクリエイターを使用し、これはヘッダーとmainwindow.cppプログラムを作成します。だから私の問題は、いくつかのタスクを実行するためにヘッダーにもっと多くのメソッドを宣言しているということです。ラベルを更新するとループが発生し、GUIが起動しないという問題があります。私はシーケンシャルな方法で(ループなしで)実行しようとしていますが、これは動作しますが、las関数を呼び出すだけで、プログラムはシーケンスに従いません(たとえば、サーバにpingを実行しようとしている)。

以下は、私が持っている同様のmianwindow.cppプログラムです。

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
while(1)
{
    ping2server()
    if(ping2server>0)
            ui->label->setText("The server is alive");
    else
            break;

}
/*the server is dead connecting to other one*/
.
.
//and so on

}

MainWindow::~MainWindow()
{
delete ui;
}

int MainWindow::png2server()
{

}
int MainWindow::conn2server()
{
}

どんなアイデアも教えてください。私はこれで本当に新しいです。

ありがとうございました

0

1 答え

あなたはそのようなループをするときに、アプリケーション全体をフリーズしています。代わりに、 QTimer を使用し、 timeoutを使用してラベルを更新する必要があります()信号を送信します。

1
追加された
コードを投稿できますか?
追加された 著者 this.lau_,
私はしましたが、問題は私が2つのタイマを使用しているということです。私がそれらを使用するとき、そのうちの1つだけが更新され、最後のものです。 GUIには、最初のタイマーの状態は表示されません。なぜ??
追加された 著者 user1013213,