crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Как заморозить сплиттер.
Гость_Гость_Sergey_*_*
сообщение 8.11.2009, 13:03
Сообщение #1





Гости








    


Ребят, хочется реализовать следующий функционал: есть два виджета, сплиттером соответственно настраиваю их размеры, затем при нажатии соответствующей кнопки, сплиттер должен прятаться, в то время как виджеты должны остаться с установленными размерами.

Пытался пользовать QSplitter, но ширину не установить в 0, да и скрыть не получится, т.к. все дочки тоже спрячутся. Какие пути есть?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 8.11.2009, 13:20
Сообщение #2


Профессионал
*****

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

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




Репутация:   44  


Сам не пробовал, но начал бы эксперименты с:
QSplitterHandle * QSplitter::handle ( int index ) const
и попробовал бы сделать disable этому объекту (наследник QWidget).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Stanislaus
  опции профиля:
сообщение 12.11.2009, 15:16
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 23.4.2008
Пользователь №: 156

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




Репутация:   0  


Можно зафиксировать размеры контроллируемых сплиттером виджетов.

и setSizes()... Например splitter->setSizes(QList<int>() << 300 << 0); В этом случае, последний виджет скрывается.

Цитата(Stanislaus @ 12.11.2009, 16:10) *
Можно зафиксировать размеры контроллируемых сплиттером виджетов.

и setSizes()... Например splitter->setSizes(QList<int>() << 300 << 0); В этом случае, последний виджет скрывается.


Сорри, тупанул, не понял вопроса :unsure:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 13.11.2009, 17:53
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

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




Репутация:   1  


Если я правильно понимаю, то:
1. есть 2 виджета плюс сплиттер. Т.е. на самом деле 3 виджета.
2. Сплиттер должен ресайзить виджеты и при необходимости изчезать.

По-моему, нет никаких сложностей в том, чтобы скрыть сплиттер. Размер виджетов разве при этом изменится? Ну а ресайз я бы делал отловом сиглала splitterMoved ( int pos, int index )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
frg10
  опции профиля:
сообщение 14.11.2009, 13:38
Сообщение #5


Студент
*

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

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




Репутация:   2  


Цитата(Elfinit @ 13.11.2009, 17:53) *
По-моему, нет никаких сложностей в том, чтобы скрыть сплиттер.

А когда скрываешь сплиттер, разве он не скроет заодно все свои дочерние окна? (Сам не пробовал, просто интересно)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 15.11.2009, 12:59
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

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




Репутация:   1  


А зачем окна устанавливать дочерними для сплиттера????
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 15.11.2009, 14:20
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Цитата(Elfinit @ 15.11.2009, 12:59) *
А зачем окна устанавливать дочерними для сплиттера????

Не окна, а виджеты.
А как иначе? Метод insertWidget()/addWidget() устанавливает виджету родителя в виде себя, а если не использовать этот метод, то проку от сплиттера никакого, т.к. это будет обычный QFrame.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 15.11.2009, 14:38
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

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




Репутация:   1  


Блин, перепутал сплиттер со слайдером, сори....
Мм....Тогда....например, делать фрейм, в которой кидать сплиттер. При нажатии на кнопку перекидывать виджеты из сплиттера во фрейм (там надо будет с компоновкой немного разобраться....) Ну а сплиттер скрывать..)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.11.2009, 17:36
Сообщение #9


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

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

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




Репутация:   94  


А что вариант BRE не подходит?
По моему самый простой
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 15.11.2009, 18:18
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Цитата(Litkevich Yuriy @ 15.11.2009, 17:36) *
А что вариант BRE не подходит?
По моему самый простой

По-моему тоже.
Интересно, что подразумевалось под этим:
Цитата(Гость_Гость_Sergey_*_* @ 8.11.2009, 13:03) *
Пытался пользовать QSplitter, но ширину не установить в 0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 23.12.2024, 20:13