Название: Вопрос по менеджеру компоновки Отправлено: memnek от Январь 10, 2010, 20:05 Хотелось бы узнать, как сделать подобный интерфес:
http://i033.radikal.ru/1001/4c/927a39c55734.png (http://i033.radikal.ru/1001/4c/927a39c55734.png) т.е. чтобы при нажатии например на кнопку, часть виджетов становилась невидимой и размер всего окна менялся в соответствии с размером только видимых виджктов. Проблема в том, что при нажатии на кнопку, размер окна не меняется, а виджеты заполняются в окне в соответствии с его размером (т.е. перемещаются на середину) в книжке прочитал возможное решение: наследовать класс от класса, созданного в Qt Designer, и в его конструкторе прописать Код тогда окно уменьшается при необходимости, но нельзя изменить его размеры потом. Как быть? Название: Re: Вопрос по менеджеру компоновки Отправлено: BRE от Январь 10, 2010, 20:15 Посмотри в assistant:
Extension Example Название: Re: Вопрос по менеджеру компоновки Отправлено: memnek от Январь 10, 2010, 20:21 Там именно то, что я и сказал: устанавливается SetFixedSize. Виджет не меняет свой размер
Название: Re: Вопрос по менеджеру компоновки Отправлено: BRE от Январь 10, 2010, 21:05 Немного изменил этот пример.
Название: Re: Вопрос по менеджеру компоновки Отправлено: memnek от Январь 10, 2010, 22:07 спасибо. но когда виджеты скрыты окно всё равно не может менять размер :( хотелось бы, чтобы меняло
даже так: как сделать, чтобы при сворачивании/разворачивании некой части размер окна по вертикали автоматически подгонялся под видимую часть, а по горизонтали не менялся Название: Re: Вопрос по менеджеру компоновки Отправлено: BRE от Январь 10, 2010, 23:20 спасибо. но когда виджеты скрыты окно всё равно не может менять размер :( хотелось бы, чтобы меняло Так вот ты и подумаю/попробуй как это сделать. ;)даже так: как сделать, чтобы при сворачивании/разворачивании некой части размер окна по вертикали автоматически подгонялся под видимую часть, а по горизонтали не менялся Этот пример для затравки. Название: Re: Вопрос по менеджеру компоновки Отправлено: memnek от Январь 11, 2010, 14:43 можно конечно при нажатии на кнопку вызывать слот, который явно указывает высоту. просто мне хотелось узнать, можно ли каким-то образом через менеджеры компоновки это сделать
Название: Re: Вопрос по менеджеру компоновки Отправлено: lit-uriy от Январь 11, 2010, 16:22 void QWidget::adjustSize ()
Название: Re: Вопрос по менеджеру компоновки Отправлено: Kolobok от Январь 11, 2010, 22:35 adjustSize может изменить как высоту, так и ширину.
Код: resize( width (), sizeHint ().height () ); Название: Re: Вопрос по менеджеру компоновки Отправлено: aljeshishe от Январь 13, 2010, 19:22 Я в подобной ситуации вычислял размер скрываемого виджета, скрывал виджет, ресазил форму на подсчитанный размер
+ style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing)(это дефолтовое расстояние между виджетами в лейауте), еще не забывал делать Код: layout()->setEnabled(false); Ну еще совсем хорошо обработать ситуацию если isMaximized(), потому как тогда ресайзить форму смысла нет Работать работало, хотя попой чувствую что есть более простое решение |