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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Класс производный от QLabel, в ui  (Прочитано 2929 раз)
Dexel
Гость
« : Ноябрь 08, 2013, 00:42 »

Здравствуйте.
Форма рисована в QT-Designer.

Создал класс, производный от QLabel. Включил в проект его файлы .cpp .h и прииклюдил.

Сам он работает в отдельности, т.е
если я заменяю в файле ui_mainwindow.h создание ссылок:
Код:
QLabel *ccc;
на свой:
Babel *ccc;
и далее создание экземпляра:
QLabel ccc = new QLabel(widget);
на своё:
Babel ccc = new QLabel(widget);
то класс выполняет свои задачи (там рисовалка на QPainter в обработчике QPaintEvent...)

Так вот вопрос, что нужно сделать/указать чтобы можно было нормально юзать QLabel через мой производный класс?

Если я буду вручную создавать экземпляры, и добавлять их в менеджеры компоновки, т.п., то зачем тогда их в форме QT-Designer рисовать?

Может можно как-то ссылке на QLabel, которую сгенерил QT-Designer присвоить значение моего класса, хез.

Левая мысль: В конструкторе MainWidget удалить созданный объект QLabel, потом new Babel и добавить его вместо QLabel. И в коде прописывать море свойств, которые сделал в дизайнере. Но это ж грубо и не по-Европейски.

Подскажите, как это правильно сделать?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Ноябрь 08, 2013, 00:59 »

http://qt-project.org/doc/qt-4.8/designer-using-custom-widgets.html
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Dexel
Гость
« Ответ #2 : Ноябрь 08, 2013, 04:20 »

Ага, спасибо. Нашел, только тут: http://qt-project.org/forums/viewthread/33263
Последний пост:
are 2 ways,
1. Add a QLabel in your form by dragging a QLabel widget from the widgetbox and right click on that QLabel > promote to you subclassed QLabel (you need to set *.h and *.cpp )
2. From you QDialog or QMainWindow include the subclassed QLabel’s header file and create an instance there.

И Вам спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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