KM
21 вересня 2020 р. 16:03

Siganal slot в ui

qt, signal, Slot

добрый день,
хочу сделать сигнал слот между ui каунтером:

выше (начало UI)

ui->setupUi(this);
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, &ErrorStatus::checkForErrors);
    timer->start(settings.ErrorHandlerTimeOut.get()*1000);
    Global::errorHandler = this;
    agregator = new ErrorAgregator(this);
    ui->scrollArea->setWidgetResizable(true);

    ui->scrollWidget->setStyleSheet("QWidget#scrollWidget {background-color: #282828; border-left: 2px solid rgb(85,150,255);}");//40,40,40
    ui->scrollArea->setStyleSheet("QScrollArea { background-color: #282828; border: 0;}");//40,40,40
Хочу сюда добавить сигнал вроде:
    //ui->scrollArea->setWidget(newtext);


после калькулятора ошибое условие если ошибок нет через Елс
if(errCount>0) getIcon()->setText("Ошибка : "+QString::number(errCount)); //изменить количество ошибок
    else getIcon()->setText("Нет ошибок"); //если ошибок то написать текст()
    QLabel *newtext = new QLabel("Нет ошибок");
2

Вам це подобається? Поділіться в соціальних мережах!

1
Evgenii Legotckoi
  • 22 вересня 2020 р. 12:00

Добрый день,

Не совсем понял, какой код должен находиться в слоте, но можно подключиться через лямбда функцию.

connect(timer, &QTimer::timeout, this, []()
{
    ui->scrollArea->setWidget(newtext);
    if(errCount>0) getIcon()->setText("Ошибка : "+QString::number(errCount)); //изменить количество ошибок
        else getIcon()->setText("Нет ошибок"); //если ошибок то написать текст()
    QLabel *newtext = new QLabel("Нет ошибок");
});

Но лучше создавать просто текст с QString, чем с QLabel. Лучше добавить QLabel сразу, а потом менять у него текст.
Иначе у вас могут быть утечки памяти.

    Коментарі

    Only authorized users can post comments.
    Please, Log in or Sign up