Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Mailf от Декабрь 05, 2016, 14:56



Название: Как изменить label из функции.
Отправлено: Mailf от Декабрь 05, 2016, 14:56
Код:
void timePlus() {
    if(sec1+sec2 == 14) {min++; sec1 = 0; sec2 = 0;}
    else if (sec2 = 10) {sec1++; sec2 = 0;}
    else {sec2++;}
    QString time = QString::number(min);
    time += ":";
    time += QString::number(sec1);
    time += QString::number(sec2);
    ui->lbl->setText(time);
    return 0;
}
void MainWindow::on_startButton_clicked()
{
    QTimer *timer = new QTimer();
    timer->start(100);
    connect(timer, SIGNAL(timeout()), this, SLOT(templ));
}
Выдает ошибку компиляции в этой строке: "ui->lbl->setText(time);"


Название: Re: Как изменить label из функции.
Отправлено: gil9red от Декабрь 05, 2016, 15:08
1. Вы думаете что тут будут угадывать текст ошибки? :)
2. "return 0;" в void функции выглядит странно
3.  Нет смысла на каждом вызове функции создать таймер, тем более вы его не удаляете, а значит создаете утечку памяти.
Поэтому, предлагаю следующее:
3.1 Создайте в поле класса MainWindow "QTimer timer;"
3.2 В конструкторе класса MainWindow подключите сигнал таймера: "connect(&timer, SIGNAL(timeout()), this, SLOT(templ));"
3.3 B методе on_startButton_clicked вызовите: "timer.start(100);"
    


Название: Re: Как изменить label из функции.
Отправлено: Mailf от Декабрь 05, 2016, 15:49
А где это? ;D В каком файле, чет найти не могу
3.2 В конструкторе класса MainWindow подключите сигнал таймера: "connect(&timer, SIGNAL(timeout()), this, SLOT(templ));"


Название: Re: Как изменить label из функции.
Отправлено: gil9red от Декабрь 05, 2016, 16:17
Я не знаю структуру вашего проекта
Конструктор, по идеи, будет в cpp файле и начинаться на MainWindow::MainWindow


Название: Re: Как изменить label из функции.
Отправлено: Racheengel от Декабрь 06, 2016, 01:05
Вот часто вспоминаю фразу из Бумера: "не нужна тебе такая машина, поверь мне на слово"


Название: Re: Как изменить label из функции.
Отправлено: gil9red от Декабрь 06, 2016, 01:27
Вот часто вспоминаю фразу из Бумера: "не нужна тебе такая машина, поверь мне на слово"

Тонко намекаете автору выучить с++, а потом браться за Qt? ;D