Наложить сетку на QFrame - PullRequest
0 голосов
/ 24 марта 2020

Итак, у меня есть QFrame с его макетом, установленным как QGridLayout.

В этом макете у меня есть плитки в строках по 16, которые представляют что-то вроде палитры.

Я хочу, чтобы эта сетка плиток была разделена линиями, как должна быть сетка. Я могу сделать это легко с помощью плиток paintEvent s.

Однако очевидная проблема заключается в том, что между плитками линии удваиваются. Когда я масштабирую это для других приложений, разница становится еще более заметной.

Итак, есть ли способ создать наложение линии сетки для моего QFrame? Я рассмотрел вопрос о преобразовании всего этого в решение вида / сцены и использование drawForeground, однако это выглядит как совершенно неуместное использование парадигмы.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 24 марта 2020

Поместите QFrame в QGridLayout, затем поместите пользовательский QWidget с прозрачным фоном и paintEvent, который рисует сетку поверх него (та же позиция QGridLayout).

Или, так как у вас уже есть QGridLayout, просто поместите пользовательский QWidget в него, над плитками, , заполняющий всю сетку .


Примечание: вы Вы уверены, что хотите QFrame там, или просто QWidget подойдет? Просто говорю, потому что с QFrame вы получаете взгляд 1990-х в свой пользовательский интерфейс ... Если вы действительно хотите этого, тогда go впереди, просто говоря.

...