Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Dexel от Ноябрь 08, 2013, 00:42



Название: Класс производный от QLabel, в ui
Отправлено: 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. И в коде прописывать море свойств, которые сделал в дизайнере. Но это ж грубо и не по-Европейски.

Подскажите, как это правильно сделать?


Название: Re: Класс производный от QLabel, в ui
Отправлено: kibsoft от Ноябрь 08, 2013, 00:59
http://qt-project.org/doc/qt-4.8/designer-using-custom-widgets.html


Название: Re: Класс производный от QLabel, в ui
Отправлено: Dexel от Ноябрь 08, 2013, 04:20
Ага, спасибо. Нашел, только тут: http://qt-project.org/forums/viewthread/33263 (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.

И Вам спасибо.