LINUX.ORG.RU

[Qt] Размер QTableWidget в QToolBox


0

1

Есть QTableWidget с n-ым количеством строк, который вставлен в QToolBox. QToolBox не отображает полностью QTableWidget, а скроллит его. Как сделать, чтобы QTableWidget не скроллился, а раздвигал QToolBox?

Пошамань с минимальным размером TableWidget'а и отключи скроллинг в QToolBox.

P.S. А вот в GTK такой проблемы не может быть в принципе, ибо всякие такие виджеты, например, те же табличные, растут в размере от количества элементов в них (и раздвигают родительский виджет соответственно), а чтобы приделать скроллинг - надо ручками их встраивать в GtkScrolledWindow или как-то так.

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

>А вот в GTK такой проблемы не может быть в принципе

т.е. в гтк окно может распухнуть до бесконечности или часть гуя обрежет? :) Веселый тулкит.
В Qt на самом деле такой проблемы нет, если делать гуй нормально, а не делфи-стайл.

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

>в гтк окно может распухнуть до бесконечности

Да, если заведомо не впихнуть распухающий виджет в ScrolledWindow. Это же полный Unix-way! Для представления данных - один виджет, для его прокрутки - другой, всё по чесноку :)

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

>Это же полный Unix-way!

А по-моему это обыкновенный пи**ц. В гтк видимо тяга к гигантизму во всех местах. Лейауты то хоть есть в этом недотулките?

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

>Лейауты то хоть есть ... ?

Конечно - вертикальный, горизонтальный, табличный. Можно своих наклепать. Всё как в лучших домах

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

>используй лейауты, не делай через задницу.

А мистер специалист по задницам сможет объяснить почему лейаут не должен допустить ресайза и дать QTableWidget раздвинуть QToolBox?

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

>почему лейаут не должен допустить ресайза

так ты определись, нужен тебе ресайз или нет. И поставь соответствующую size policy (expanding или fixed например).
Гуйню в дизигнере делаешь или, как джедай, в рантайме кодом? Покажи окно свое и где проблемное место. Можешь .ui файл выложить сразу

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

>так ты определись, нужен тебе ресайз или нет.

Прочитай внимательно, что я написал. Написал же я, что мне нужно избавиться от ресайза и добиться чтобы QTableWidget раздвигал QToolBox.

Гуйню в дизигнере делаешь или, как джедай, в рантайме кодом?

Предположим, что, в рантайме кодом.

Покажи окно свое и где проблемное место. Можешь .ui файл выложить сразу

Выложить, как QTableWidget вставляется в QToolBox?

cppruled ()
Ответ на: комментарий от yoghurt

>>в гтк окно может распухнуть до бесконечности

Да, если заведомо не впихнуть распухающий виджет в ScrolledWindow. Это же полный Unix-way! Для представления данных - один виджет, для его прокрутки - другой, всё по чесноку :)


Интересно, как с таким дурацким Unix-way делаются вещи типа «отскролься, чтобы было видно такой-то элемент». Руками вычисляются координаты и посылаются скролл-окну? Разделять взаимосвязанные сущности - это не самое умное решение.

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

>Руками вычисляются координаты и посылаются скролл-окну?

Нет. Есть виджеты с функциями прокрутки и без них. Если у виджета есть функции прокрутки, как gtk_tree_view_scroll_to_cell или gtk_tree_view_scroll_to_point у GtkTreeView, то париться не надо.

Если хотим прокрутку прикрутить к чему-нибудь неординарному, например, к контейнеру (лейауту) других виджетов, то его сначала надо засунуть в GtkViewport и потом опять же в GtkScrolledWindow.

Так что всё чётко.

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

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

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

>Написал же я, что мне нужно избавиться от ресайза и добиться чтобы QTableWidget раздвигал QToolBox.
а «раздвигать» это не ресайз? :)

Предположим, что, в рантайме кодом.

т.е. у тебя еще ничего и не написано что ли? Выкладывай что есть, штатные телепаты в декрете.

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

>а «раздвигать» это не ресайз? :)

ресайз это изменение виджета контейнером,в данном случае QToolBox, как контейнер ресайзит QTableWidget.

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

>ресайз

ресайзит


ну и где разница? :) Ресайз дословно - изменение размера. Все. Остальные курдявые определения можешь оставить себе, толку от них нет.

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