私はQT5を初めて使用しています。私は非常に奇妙な問題を抱えています。 QTimerを使用して0.5秒ごとにシリアルデバイスから座標を読み込みたいのですが、QTimerはタイムアウト信号を送信しません。Qt5はタイムアウト信号を送信しません
マイ.H:
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void test();
private:
Ui::MainWindow *ui;
};
私の.cpp:私は追加
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QTimer myTimer(this);
myTimer.setInterval(500);
myTimer.setSingleShot(false);
connect(&myTimer, SIGNAL(timeout()), this, SLOT(test()));
myTimer.start();
}
void MainWindow::test() {
qDebug() << "Time out";
}
MainWindow::~MainWindow()
{
delete ui;
}
私はプログラムではなく、シングル "タイムアウト" 現れるを開始した後...
"myTimer.start()"の後の次のコード:
QTime t = QTime::currentTime().addMSecs(550);
while (QTime::currentTime() < t) {
qDebug() << myTimer.remainingTime();
}
は、私は「myTimer」の残り時間が0に減少した後、それは残りの時間を補充し、再び起動しませんことを発見し、それがすでに
誰もが持って追加された0
Q_OBJECTのままでアイディア?
ありがとうございました!
尋ねるときに実際のコードをコピーして貼り付けてください。 'myTimer'と' mytimer'は異なる識別子で、 '};は関数引数リストを完成させるための有効な構文ではないので、最初のスニペットはコンパイルされません。 – Sergey
あなたのコードで 'QTimer myTimer;'を宣言し、後続の行を書いていますか? – Sergey
@Sergey申し訳ありません、私はちょうど私の質問を編集し、私は.hと.cppファイルを貼り付けました。 –