KM
Қыр. 21, 2020, 4: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, түсқайта

Добрый день,

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

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 сразу, а потом менять у него текст.
Иначе у вас могут быть утечки памяти.

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз