1 つの .cpp (つまり、ExerciseControl.cpp) にツール ボタンがあります。ボタンをクリックすると、別の .cpp (つまり、StatusBar.cpp) で 2 つのタイマーがトリガーされます。
ただし、次のコードは機能しません。タイマーは、ExerciseControl.cpp のボタンをクリックして startExercise() をトリガーしても開始しません。
ExerciseControl.cpp:
ExerciseControl::ExerciseControl(void)
{
myStatusBar = new StatusBar;
}
void ExerciseControl::startExercise()
{
myStatusBar ->simulationTimer->start(1000);
myStatusBar ->elapsedTimer->start(1000);
}
StatusBar.cpp:
StatusBar::StatusBar()
{
simulationTimer = new QTimer;
QObject::connect(simulationTimer, SIGNAL(timeout()), this, SLOT(tickSimulation()));
elapsedTimer = new QTimer;
QObject::connect(elapsedTimer, SIGNAL(timeout()), this, SLOT(tickSimulation()));
createButtons();
};
void StatusBar::createButtons()
{
...
}
void StatusBar::tickSimulation()
{
...
}
ただし、コンストラクターで次のように宣言すると、タイマーが自動的に開始されますが、これは望ましくありません。
StatusBar::StatusBar()
{
simulationTimer = new QTimer;
simulationTimer->start(1000);
QObject::connect(simulationTimer, SIGNAL(timeout()), this, SLOT(tickSimulation()));
elapsedTimer = new QTimer;
elapsedTimer->start(1000);
QObject::connect(elapsedTimer, SIGNAL(timeout()), this, SLOT(tickSimulation()));
}
ExerciseControl.cpp のボタンからタイマーをトリガーする必要があります。
助けてください。
ありがとう。