crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> базовый класс для класса ui, ui базовый класс
zaytsewa
  опции профиля:
сообщение 5.5.2011, 5:45
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 20.4.2011
Пользователь №: 2620

Спасибо сказали: 1 раз(а)




Репутация:   0  


Всем привет!
Есть 2виджета с одинаковой функциональностью, состоящие из qslider и нескольких меток, все различие в ориентации слайдеров. хочется сделать их на основе форм из дизайнера, но чтобы указатели на слайдер и метки были вынесены в базовый класс для обеих форм.
это нужно для вынесения всей общей функциональности по работе с ui в отдельный класс
какие есть способы реализации?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 5.5.2011, 9:11
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


а что мешает программно менять ориентацию слайдеров в нужном коде?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zaytsewa
  опции профиля:
сообщение 5.5.2011, 10:42
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 20.4.2011
Пользователь №: 2620

Спасибо сказали: 1 раз(а)




Репутация:   0  


хочется использовать формочки, чтобы можно было их править в QtDesigner
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.5.2011, 11:28
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


zaytsewa, суть проблемы не понял.
Если не понятно как можно использовать ui-файлы, то читай в астстенте: Using a Designer UI File in Your Application
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zaytsewa
  опции профиля:
сообщение 5.5.2011, 13:38
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 20.4.2011
Пользователь №: 2620

Спасибо сказали: 1 раз(а)




Репутация:   0  


ui-файлы я использовать умею
суть вопросы в другом

у меня для двух custom-виджетов есть общие свойства и методы
т.е. если бы не разный тип UI, то можно было бы вынести весь этот общий функционал в один базовый класс и от него наследоваться

чтобы получить возможность наследоваться я вижу только один выход - писать всё вручную и отказаться от использования конструктора,
но это вариант использовать не хочется

т.е. сейчас у меня есть hSlider.ui и vSlider.ui

если отказаться от использования ui, то вместо них делаем ui_base_slider.h - общая часть
и 2 других - ui_hSlider.h и ui_vSlider.h

я хотела узнать есть ли какой-то другой способ
например указать в файле *.ui, что базовым виджетом является не QWidget как обычно, а мой виджет,
в котором прописаны нужные мне элементы (указатели на метку и ползунок)

Потом на основе ui-шек я делаю классы HSlider и VSlider, им я делаю setupUI() - те самые сгенерированные классы

если бы оба Ui_HSlider и Ui_VSlider наследовались от Ui_BaseSlider

то я могла бы вынести почти всю функциональность по работе с ui в BaseSlider
а в HSlider и VSlider оставить только создание ui
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.5.2011, 7:04
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(zaytsewa @ 5.5.2011, 16:38) *
например указать в файле *.ui, что базовым виджетом является не QWidget как обычно, а мой виджет,
да, так можно сделать в самом дизайнере, кладёшь на форму стандартный виджет (от которого унаследован твой) щёлкаешь правой кнопкой мыши по нему, в пункте "Promote to" ("Унаследован от") вводишь информацию о своём виджете. Но отображаться в дизайнере он будет как базовый виджет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zaytsewa
  опции профиля:
сообщение 6.5.2011, 8:25
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 20.4.2011
Пользователь №: 2620

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 6.5.2011, 8:04) *
Но отображаться в дизайнере он будет как базовый виджет.



то есть как чёрный ящик( точнее прозрачный)...

а мне бы элементы его подвигать)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.5.2011, 13:34
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(zaytsewa @ 6.5.2011, 11:25) *
а мне бы элементы его подвигать)
для этого ты придумала себе отдельный ui-файл, там и двигай. Подругому никак.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 5:16