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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Наследование ui  (Прочитано 2698 раз)
grig_p
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« : Май 17, 2021, 09:57 »

Здравствуйте, уважаемые коллеги!
Недавно начал использовать Qt, до этого довольно долго работал на Delphi и Object Pascal.
Появился такой вопрос.
Есть подкласс от QWidget, который содержит заголовок .h, код .cpp и форму .ui:
Код:
class MySuperClass : public QWidget
{
...
}
На форме имеются некоторые виджеты, относящиеся к MySuperClass.
Есть также подкласс, который также содержит заголовок .h, код .cpp и форму .ui:
Код:
class MySubClass : public MySuperClass
{
...
}
На форме также имеются некоторые виджеты, относящиеся к MySubClass.

Как правильно это реализовать с помощью Qt?
В Delphi на форме наследнике имеются те же элементы, что и на форме - предке, которые можно изменять, вставлять что-то новое и т.д.
В Qt. форма подкласса пустая. Я могу расположить на ней виджеты, но они появляются в непонятных местах.
Как их добавить так, чтобы они появлялись в нужных местах формы суперкласса?
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #1 : Май 18, 2021, 15:00 »

Вы хотите смешать два интерфейса? Зачем?
Если вы хотите сделать просто класс-интерфейс и из наследуемого класса иметь доступ к UI-виджетам, то проще в вашем суперклассе сделать сеттеры/геттеры и вызывать именно их.
Записан

Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #2 : Май 25, 2021, 13:52 »

Здесь есть только 2 решения.

1. Делать весь гуй кодом, без дизайнера. Соответственно переопределить нужные методы в наследнике.
2. Сделать базовую форму в дизайнере, но оставить в ней виджеты-плейсхолдеры, на которые наследники смогут паковать свой контент. Как - см. пункт 1.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
grig_p
Новичок

Offline Offline

Сообщений: 11


Просмотр профиля
« Ответ #3 : Май 26, 2021, 13:32 »

Спасибо большое. Я так примерно и представлял, но думал, что есть какое-то специфичное решение, о котором я не знал.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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