crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Выравнивание виджетов на форме как в VCL
gogi
  опции профиля:
сообщение 19.6.2008, 17:30
Сообщение #1


Новичок


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

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




Репутация:   0  


Поскажите пожалуйста, как осуществлять в QT выравнивание на подобии того, какое делается в VCL свойствами align/anchors. Если на форме размещён виджет, то как сделать чтобы во время выполнения программы при изменении размеров окна размеры виджета также менялись, чтобы он не выходил за границы окна?
Смотрел в сторону Layout. Но насколько я понял, тут изменяются размеры виджетов которые внутри этих layout'ов на форме. А размер самого layout'a остаётся неизменным.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.6.2008, 17:38
Сообщение #2


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

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

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




Репутация:   94  


ты смотрел в правильную сторону, в чем делаешь окно, руками или в дизайнере?

см. Урок 5 - Строим блоки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gogi
  опции профиля:
сообщение 19.6.2008, 17:40
Сообщение #3


Новичок


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

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




Репутация:   0  


В дизайнере. Не хочется для такой мелочи писать код. Ведь это так просто делалось в Delphi/Builder!
Пока как запасной вариант думаю отлавлить resizeEvent и там менять размер layout'a.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.6.2008, 17:51
Сообщение #4


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

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

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




Репутация:   94  


Цитата(gogi @ 19.6.2008, 21:40) *
думаю отлавлить resizeEvent

:D
Изучи этот пример, и следующий, он прояснит тебе как применять компоновщики, как их друг в друга вкладывать.

А в дизайнере положи виджеты примерно. затем читай это
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gogi
  опции профиля:
сообщение 19.6.2008, 18:14
Сообщение #5


Новичок


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

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




Репутация:   0  


Вроде QWidget::setLayout мне поможет. В примере он вызывается для MainForm. А если у меня на главной форме есть ещё ToolBar и StatusBar, будет ли разница в том, вызывать его для главной формы или для centralWidget? И ещё. Мне нужно по центру формы разместить (грубо говоря) три панели, а между ними Spacer'ы. Что-то сомнительно, что layout'ы справятся с этим :unsure:

--------------------------------
--------------------------------
|            | |     | |       |
|            | |     | |       |
|            | |     | |       |
|            | |     | |       |
|            | |     | |       |
|            | |     | |       |
--------------------------------
--------------------------------


Сообщение отредактировал gogi - 19.6.2008, 18:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.6.2008, 18:21
Сообщение #6


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

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

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




Репутация:   94  


Цитата(gogi @ 19.6.2008, 22:14) *
Вроде QWidget::setLayout мне поможет.

дак ты в дизайнере делешь или нет??????
Если в коде то этот метод вызываешь для центрального виджета, ToolBar и StatusBar имеют свои области крепления, см пирмер SDI или MDI
Цитата(gogi @ 19.6.2008, 22:14) *
Мне нужно по центру формы разместить (грубо говоря) три панели

панели есть виджеты, виджеты управляются компоновщиком, у компоновщика можно задавать свойства внешнего зазора и внутреннего (между виджетами которые внутри него)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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