Проблема с границами QWidget в QGridLayout - PullRequest
3 голосов
/ 02 августа 2011

У меня есть QGridLayout, заполненный моими пользовательскими QWidgets (я буду называть их CellWidgets). Я хочу отобразить сетку между всеми CellWidgets, чтобы столбцы и строки были четко видны.

Очевидно, что это не сделано из QGridLayout, поскольку это просто держатель для виджетов, которые рисуют их сами. Я заставил свои CellWidgets нарисовать границу, переопределив функцию paintEvent следующим образом:

QPainter Painter(this);
Painter.setPen(QPen(QBrush(Qt::white), 2));
Painter.setBrush(Qt::black);
Painter.drawRect(0, 0, width(), height());

Интервал QGridLayout установлен в 0, однако, когда он рисуется, граница сетки имеет одинаковую ширину вокруг краев и удваивает эту ширину между ячейками, так как граница ячейки эффективно отображается дважды.

Есть ли какой-нибудь чистый способ решить / избежать этой проблемы?

1 Ответ

1 голос
/ 02 августа 2011

Я думаю, что вы движетесь в неправильном направлении.

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

Проверьте, например, ссылку .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...