LINUX.ORG.RU

[Qt] Qt Designer и растягивание виджетов

 


0

1

Пишу интерфейс с помощью Qt Designer и вот столкнулся с такой маленькой проблемой.

Есть главное окно программы, на котором расположены QToolBar, QStatusBar, QMenuBar и прочие компоненты.

Как разместить свои виджеты чтобы при разворачивании на весь экран они тоже растягивались?

Сейчас виджет в главном окне фиксированного размера, но как сделать так, чтобы он заполнял всю свободную часть окна, которая не занята элементами?


У меня есть QTabWidget и в нём QTreeView. Как сделать так, чтобы при разворачивании окна QTreeView тоже разворачивался?

ur
() автор топика
Ответ на: комментарий от ur

В десигнере тоже можно группировать виджеты с помощью лайоутов. Либо добавляешь его руками с панель инструментов и потом на него виджеты, либо накидываешь виджеты, выделяешь нужные, тыкаешь правлой кнопкой мыши, выбираешь «Компоновка», и там уже как их группировать.

Zhbert ★★★★★
()

почему не используешь QMainWindow?

frozenix ★★★
()
Ответ на: комментарий от trex6

> 1. Не использовать QtDesigner

да уж, очень удобно размещать вручную элементы

в продолжении темы: при разбивании лаяута компоненты в дизайнере не остаются на своем месте, а уменьшаются в размере и разбегаются по форме аки тараканы (в дизайнере №3 такого не было) - как победить это дурацкое поведение ?

x905 ★★★★★
()
Ответ на: комментарий от x905

>> 1. Не использовать QtDesigner

да уж, очень удобно размещать вручную элементы

После нескольких лет написания сложных интерфейсов Вы поймете, в чем были не правы.

trex6 ★★★★★
()
Ответ на: комментарий от x905

>да уж, очень удобно размещать вручную элементы

Сложный интерфейс лучше делать руками, простенькие диалоговые окошки в десигнере.

Zhbert ★★★★★
()
Ответ на: комментарий от eRazor

Чаще всего удобнее использовать layouts. В редких ситуациях приходится вручную управлять размером виджетов.

Anchors & align - это, как я понимаю, подразумевается использование QML? В целом идея не плохая, но на нем я написал еще слишком мало, чтобы делать окончательный итог. В тех задачах, с которыми я сталкивался (в основном UI для мобильных приложений) он показал себя очень хорошо.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

> Anchors & align

Это из альтернативного мира. Visual Studio & Delphi/CBuilder. Мне они показались удобнее. Читал когда-то давно в каком-то холиваре дифирамбы кутишным лейаутам, типа можно сделать что-то, что нельзя сделать указанной комбинацией, но потом, когда познакомился с концепцией лейаутов так и не понял их преимущество. Наверно его и нет и оно равноценно, только вопрос привычки.

eRazor ★★★
()
Ответ на: комментарий от Zhbert

> Сложный интерфейс лучше делать руками, простенькие диалоговые окошки в десигнере.

Довольно сносно верстаю. Относительно быстро и не испытываю затруднений, чтобы понять, как что-то сделать. Ну вот нифига не лучше руками интерфейсы делать, было бы вменяемое средство, использовал бы. Руками выходит относительно медленно и трудоёмко.

eRazor ★★★
()
Ответ на: комментарий от eRazor

>Это из альтернативного мира
К сожалению или к счастью, но мне не пришлось пока что с этим сталкиваться.


P.S.

было бы вменяемое средство, использовал бы

Т.е. средства все таки нет и все делается руками?

trex6 ★★★★★
()
Ответ на: комментарий от trex6

> Т.е. средства все таки нет и все делается руками?

Ну, средства есть, тот же Dreamviewer, но как он верстает, мне так не надо. Я не знаю, чем можно делать блочную вёрстку кроме как руками.

eRazor ★★★
()
Ответ на: комментарий от trex6

> После нескольких лет написания сложных интерфейсов Вы поймете, в чем были не правы

расскажи, я до сих пор не понял )
можно и скрин привести сложного интерфейса
да, я перехожу к ручной расстановке виджетов только тогда, когда в дизайнере уже не могу, но это бывает редко

x905 ★★★★★
()
Ответ на: комментарий от eRazor

> Anchors & align

Это из альтернативного мира. Visual Studio & Delphi/CBuilder. Мне они показались удобнее.

не, они гораздо менее гибкие - с помощью них нельзя нормально настроить расположение виджетов на форме друг относительно друга, да ещё и противоречивые, то есть виджеты могут залезать друг на друга в лёгкую

shty ★★★★★
()
Ответ на: комментарий от eRazor

Ну вот нифига не лучше руками интерфейсы делать

и лучше и быстрее, это всё равно что в AutoCAD каком-нибудь точки на глаз ставить, нежели координаты ручками вводить

shty ★★★★★
()
Ответ на: комментарий от shty

>>всё равно что в AutoCAD каком-нибудь точки на глаз ставить

а ты виджеты располашаешь с точностью до пикселя? Можно взглянуть на дизайн такого интерфейса? там и layout-ов поди нет, раз нужна такая точность?

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

>>всё равно что в AutoCAD каком-нибудь точки на глаз ставить

а ты виджеты располашаешь с точностью до пикселя? Можно взглянуть на дизайн такого интерфейса? там и layout-ов поди нет, раз нужна такая точность?

мусью знает слово аналогия?

я делаю достаточно сложные интерфейсы, но показать пока не могу - NDA, как запилю свою open source задумку - обязательно покажу

shty ★★★★★
()
Ответ на: комментарий от alex_custov

>>Сложный интерфейс лучше делать руками, простенькие диалоговые окошки в десигнере.

Чем лучше?

просто удобнее

shty ★★★★★
()
Ответ на: комментарий от shty

Удобнее писать кучу машинного кода, который может написать за тебя uic? Не вижу ничего удобного. Я даже не говорю о том, что ИМЕННО сложные интерфейсы нужно постоянно оценивать в процессе разработки, и тебе для этого понадобится постоянно компилировать и запускать программу, вместо того, чтобы просто воспользоваться предпросмотром в дизайнере. Ну а рефакторинг всего этого будет просто сказочен :)

alex_custov ★★★★★
()
Ответ на: комментарий от shty

> начни с QtCreator, к примеру

забыл уточнить - такого сложного интерфейса, который написан полностью руками
QtCreator я пока не смотрел в исходниках, погляжу на досуге

x905 ★★★★★
()
Ответ на: комментарий от alex_custov

А вот хз, я как-то всегда так считал. Например, ИМХО, навороченынй интерфейс а-ля IJ IDEA писать придется руками, ибо в гуе так кнопочек не накидать. Но это ИМХО все же.

Zhbert ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.