LINUX.ORG.RU

Qt. Как проще сделать виджет, сильно похожий на заданный?

 , , отрисовка


0

1

Имеется следующий виджет-меню:

http://i.piccy.info/i9/c7c16510d27ba4873ffec2e649009df0/1626854321/67618/1436...

Нужно сделать такой же на Qt5 (обычные виджеты, не QML), всеми пикселями похожий на заданный.

Стиль Windows для QToolButton или для QFrame, в принципе, подходит. Я бы мог понапихать слева-направо или кнопки или фреймы, чтобы составить такое меню. Но если присмотреться, то между секциями вертикальные разделители не «на полную глубину» а как бы «в половину глубины».

Вот я и думаю, каким макаром проще всего сделать меню с такими разделителями секций?

★★★★★

я бы взял QPushButton, переопределил у него отрисовку под заданный стиль и из них бы составил эту менюшку

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

Ты видишь, какая там стыковка кнопок? Если представить, что все меню состоит всего из трех кнопок, то первая должна знать, что справа от нее есть другая кнопка, и, например не рисовать правую границу. А центральная кнопка должна знать, что слева и справа есть кнопки, и вместо классической границы рисовать слева разделитель, а справа не рисовать правую границу. Для третьей кнопки подобные рассуждения.

Как-то это слишком замороченно.

Xintrea ★★★★★
() автор топика

Может написать свой widget и через QStyle::drawControl() вызывать отрисовку, чтобы выглядело в нативном стиле.

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

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

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

или как вариант свой лейаут, который будет между элементами добавлять такие разделители

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

Так это кнопка вообще без рамки. Там какая-то панелька с рамкой (QPanel, как вам выше советовали), на ней кнопки без рамки и без скруглений на углах, а между кнопками какой-то стандартный элемент из Qt типа вертикального разделителя, который я забыл как называется.

upd. Погуглил - это Vertical Line между безрамочными кнопками.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 5)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.