Russian Qt Forum

Qt => Вопросы новичков => Тема начата: MadBee от Июль 09, 2019, 10:24



Название: Qt Ui и существующие классы.
Отправлено: MadBee от Июль 09, 2019, 10:24
Немного запутался. Прошу помощи.
написал небольшой интерфейс состоящий из кучи простых QPushButton, QLabel;
один из QLabel переопределен - это часы с таймером внутри.
Решил переделать интерфейс и сделать по модному, через Designer.

дошел до этих часов. Вроде бы можно конечно математику перенести в класс с интерфейсом и прикрепить сигнал с таймером на ui->labelClock;
но как то это не красиво.
пытался подключить класс с часами в класс интерфейса Ui. Я смог вручную подключить этот label в слой черещ addWidget. Но тогда его не видно в Дизайнере.
пытался внаглую ui->labelClock=clock;
ошибки нет, впрочем результата тоже.
Сэнсеи, куда копать - подкажите?


Название: Re: Qt Ui и существующие классы.
Отправлено: Авварон от Июль 09, 2019, 10:27
widget->promote to...
или писать свой плагин что геморно


Название: Re: Qt Ui и существующие классы.
Отправлено: MadBee от Июль 09, 2019, 10:58
widget->promote to...
Вот спасибо большое. То что доктор прописал.
Работает....правда несколько странно. :) Стартует не сразу.
Я этот вопрос уладил вроде в версии без дизайнера. насильно на старте прописывал дату-время. иначе часы показывались только через секунду.
и тут такая же странность. То есть этот промот  с задержкой работает? или это я опять где то ошибся?
код простой:
Код:
DigiClock::DigiClock(QWidget* parent) : QLabel (parent)
{
    mTimer = new QTimer;
    this->setText(QDateTime::currentDateTime().toString("dd-MMM-yyyy HH:mm:ss"));
    connect(mTimer,&QTimer::timeout,this,&DigiClock::setClock);
    mTimer->start(1000);
}
void DigiClock::setClock()
{
    this->setText(QDateTime::currentDateTime().toString("dd-MMM-yyyy HH:mm:ss"));
}


Название: Re: Qt Ui и существующие классы.
Отправлено: ViTech от Июль 09, 2019, 11:07
То есть этот промот  с задержкой работает? или это я опять где то ошибся?

Промоты без задержек работают, ошибка в чём-то другом.


Название: Re: Qt Ui и существующие классы.
Отправлено: MadBee от Июль 09, 2019, 11:19
Промоты без задержек работают, ошибка в чём-то другом.
нашел!
... прописываю любой текст через дизайнер - показывает сперва его, через секунду часы. Если текст удалить то начинаем с пустого места, часы через секунду.
там в дизайнере кнопочка есть рядом с текстом. она удаляет этот блок из ui и тогда все работает!
Всем спасибо, вопрос закрыт!