Резиновость в Qt приложениях (Как добится?)
Модератор: Модераторы разделов
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Резиновость в Qt приложениях
При создании простейшых приложений на библиотеке Qt (использую Qt4-Designer) при изменени размеров окна элементы остаются на том же месте... Как и где указать, чтобы позиции, размеры некоторых элементов были относительны самого окна? Я так понял, нужно создавать функцию перераспределения позиций, размеров и прочего элементов при событии изменения окна? В таком случае есть ли универсальные методы, которые позволяли б изменить свойства всех элементов? или для каждого нужно свой метод подбирать? спосибо за любые советы....
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Резиновость в Qt приложениях
Нужно всего лишь использовать layouts.
QVBoxLayout, QHBoxLayout, QGridLayout
Есть конечно ещё resizeEvent() можно его переопределять для mainWindow и там уж ресайзить/перемещать виджеты.
QVBoxLayout, QHBoxLayout, QGridLayout
Есть конечно ещё resizeEvent() можно его переопределять для mainWindow и там уж ресайзить/перемещать виджеты.
В дисгармонии со вселенной.
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Re: Резиновость в Qt приложениях
спасибо. ща буим гуглить и пробовать...
добавлено спустя час....
чтото не могу его понять? вот мне нужно так - одна кнопка привязана к верху и растягивается на всю ширину окна. Вторая кнопка - привязана к низу и тоже растягивается. А между ними QListWidget растягивается на все окно, кроме кнопок. И как такое сделать? (если можно приатачить *.ui файл, если не составит проблем)...
добавлено спустя час....
чтото не могу его понять? вот мне нужно так - одна кнопка привязана к верху и растягивается на всю ширину окна. Вторая кнопка - привязана к низу и тоже растягивается. А между ними QListWidget растягивается на все окно, кроме кнопок. И как такое сделать? (если можно приатачить *.ui файл, если не составит проблем)...
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Резиновость в Qt приложениях
QLayout::addWidget()
QLayout::addLayout()
QWidget::setLayout()
В дисгармонии со вселенной.
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Резиновость в Qt приложениях
Если на формочке, то сначала кидаем гридлайот, и на нём уже размещаем виджеты. Всё нормально тогда ресайзится в соответствии с размерами окна.
В дисгармонии со вселенной.
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Re: Резиновость в Qt приложениях
я вот делаю так - (сильно упрощенный вариант). Кидаю грид лайот, в него кнопку. Жму предосмотр - такой же эффект как и без лайота...может нужно както привязать лайот к окну? и еще как в десайнере (qt4-designer) указать количество колонок в грид лайоте?
-
Sunder
- Сообщения: 630
- Статус: Гордый пользователь нелегального софта
- ОС: OpenSuSE 10.3 x64, Fedora 7
Re: Резиновость в Qt приложениях
Ну вообще то логично. Кстати у кнопки может быть полиси, которая задает минимальный или неизменяемый размер, так что все нормально.
Jabber: sunder@jabber.ru
Настоящий Операман должен построить дом, посадить дерево и сделать из лисы чучело !
Настоящий Операман должен построить дом, посадить дерево и сделать из лисы чучело !
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Re: Резиновость в Qt приложениях
а как сделать тогда, чтобы было "не логично", т.е. растягивалось и изменяло размеры вместе с окном (нужно привязать родительственный лайот к окну? или что еще). гуглил - не врубился. не получается как на примерах...
з.ы. 2Sunder Аватарка такую злость вызвала
) Сильный эффект.
з.ы. 2Sunder Аватарка такую злость вызвала
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Re: Резиновость в Qt приложениях
Помогите плиз с лайотами этими? седня полдня гугли - чет не втыкает...
Примерчиком поделитесь *.ui с простейшей формой....
Примерчиком поделитесь *.ui с простейшей формой....
-
Sunder
- Сообщения: 630
- Статус: Гордый пользователь нелегального софта
- ОС: OpenSuSE 10.3 x64, Fedora 7
Re: Резиновость в Qt приложениях
KukMan писал(а): ↑02.11.2007 10:24а как сделать тогда, чтобы было "не логично", т.е. растягивалось и изменяло размеры вместе с окном (нужно привязать родительственный лайот к окну? или что еще). гуглил - не врубился. не получается как на примерах...
з.ы. 2Sunder Аватарка такую злость вызвала) Сильный эффект.
SizePolicy попробуй поменять у кнопки, поставь например maximized.
PS. Не обижайся на аватарку
Jabber: sunder@jabber.ru
Настоящий Операман должен построить дом, посадить дерево и сделать из лисы чучело !
Настоящий Операман должен построить дом, посадить дерево и сделать из лисы чучело !
-
KukMan
- Сообщения: 92
- ОС: Kubuntu 7.10
Re: Резиновость в Qt приложениях
с лайотами разобрался. все дело в том, что надо было главному окну (QMainWindow или както так) назначить лайот (правая кнопки - LayOuts и там выбрать), И, действительно, все можно регулировать с помощью спейсов и сайзполиси
З.Ы. Попал на интересную тему, которая меня просветила. Ща пытаюсь адаптироватся под Оперу
)
З.Ы. Попал на интересную тему, которая меня просветила. Ща пытаюсь адаптироватся под Оперу
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Резиновость в Qt приложениях
В дизайнере layout'у всего-лишь adjust size сделать нужно было.
В дисгармонии со вселенной.