Problem z Qtimer
-
Witam!
mam problem z timerem, potrzebuję żeby funkcja Petla() wykonywała się co sekundę starałem się zrobić to w ten sposób:@MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(Petla(QString,QString)));
timer->start(1000);
ui->setupUi(this);
}@w funkcji SendMessage znajduje się funkcja Petla() która powinna się wykonywać co sekunde
@void MainWindow::SendMessage(QString to, QString text)
{
Petla(ui->uriEdit->text(), ui->textEdit->toPlainText());
}@Gdzie tkwi błąd? Czy w funkcji petla oprócz ciała funkcji powinny tkwić jakieś dodatkowe parametry dotyczące timera?
-
Błędów w tym kodzie kilka, ale głównie to nie potrzebujesz przecież żadnych argumentów w SendMessage. Wykasuj "QString to, QString text" z definicji i deklaracji tej funkcji, a także z połączenia sygnału i slotu.
-
dzięki, już sobie z tym poradziłem. Mam jeszcze pytanie, w jaki sposób zatrzymać timer? np żeby zatrzymał się po pewnej ilości wykonanych pętli
-
Użyj "QTimer::Stop()":http://qt-project.org/doc/qt-5/qtimer.html#stop. Ilość powtórzeń pętli musisz zliczyć sam, QTimer nie ma daje takich możliwości.