Russian Qt Forum
Март 29, 2024, 03:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt Ui и существующие классы.  (Прочитано 2224 раз)
MadBee
Гость
« : Июль 09, 2019, 10:24 »

Немного запутался. Прошу помощи.
написал небольшой интерфейс состоящий из кучи простых QPushButton, QLabel;
один из QLabel переопределен - это часы с таймером внутри.
Решил переделать интерфейс и сделать по модному, через Designer.

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

Сообщений: 3257


Просмотр профиля
« Ответ #1 : Июль 09, 2019, 10:27 »

widget->promote to...
или писать свой плагин что геморно
Записан
MadBee
Гость
« Ответ #2 : Июль 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"));
}
« Последнее редактирование: Июль 09, 2019, 11:01 от MadBee » Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #3 : Июль 09, 2019, 11:07 »

То есть этот промот  с задержкой работает? или это я опять где то ошибся?

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

Пока сам не сделаешь...
MadBee
Гость
« Ответ #4 : Июль 09, 2019, 11:19 »

Промоты без задержек работают, ошибка в чём-то другом.
нашел!
... прописываю любой текст через дизайнер - показывает сперва его, через секунду часы. Если текст удалить то начинаем с пустого места, часы через секунду.
там в дизайнере кнопочка есть рядом с текстом. она удаляет этот блок из ui и тогда все работает!
Всем спасибо, вопрос закрыт!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 23.