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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Все-таки как сделать сплиттер равноширинным  (Прочитано 3628 раз)
Caduceus
Гость
« : Сентябрь 26, 2009, 11:39 »

Я уже задавал этот вопрос, после всех ответов пришел к дурацкому решению задать горизонтальные растяжки виждетов, которые в сплиттере как 5 и 8 (да-да и это дало одинаковые ширины). Перерь интерфейс расширяю, все сползло и 5-8 уже не помагают.

Вот такое у меня как на картинке. У выделенных виджетов параметры все одинаковые. У групп кнопок тоже все одинаковые. Вообще левая и правая части отличнаютсят олько количеством кнопок наверху ну и самими катсомными виджетами. НИКАК не хочет делаться одинаковыми две части сплиттера, хоть убейся. Мож кто подскажет?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Сентябрь 26, 2009, 12:43 »

Я решал это так
Код:
QList <int> size;
size.append(100);
size.append(100);
splitter->setSizes(size);
Можно и др. значения вместо 100, сплиттеру нужны соотношения размеров, а не их абсолютные значения. Иначе он пытается их сам вычислить и если слева на кнопку меньше - ну значит дадим там и места меньше
Записан
Caduceus
Гость
« Ответ #2 : Сентябрь 26, 2009, 12:51 »

ВООО!!!!!

ОГРОМНОЕ СПАСИБО. Помогло!!!!!!!!!!
Записан
SABROG
Гость
« Ответ #3 : Сентябрь 26, 2009, 13:00 »

Ты приаттачил .ui'шник,  где у виджетов разные факторы растягивания плюс разные настройки у лэйаутов. Это к слову. Пришлось всё сбрасывать, чтобы увидеть проблему.

Но логика тут простая:

29 - ширина кнопок
40 - ширина пружины
0 - фактор растягивания
4 - количество контролов с левой стороны
2 - количество контролов с правой стороны

((29*4)+40)*0 = 156 - ширина для левой стороны
((29*2)+40)*0 = 98 - ширина для правой стороны

156/98 = 1,6 - некий коэффициент того, что левая сторона больше правой в 1,6 раза

Почему это не настраивается через дизайнер - вопрос.
Записан
_OLEGator_
Гость
« Ответ #4 : Сентябрь 26, 2009, 13:13 »

Могу предположить почему это не настраивается в дизайнере:
может быть просто потому, что сплиттер может содержать больше 2х виджетов и соотношения размеров как раз и задаются в setSizes(const QList<int> & list), а случай 2х виджетов просто является частным Улыбающийся

Сам делал аналогичным способом, как и Igors.
Записан
Caduceus
Гость
« Ответ #5 : Сентябрь 26, 2009, 13:22 »

Всем спасибо. Все понял.
Убеждаюсь еще раз что не все, что задумал можно нарисовать в дизайнере.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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