QGridLayout中的QWidget边框问题

时间:2011-08-02 14:27:14

标签: qt qt4

我有一个QGridLayout填充了我的自定义QWidgets(我将它们称为CellWidgets)。我想在所有CellWidgets之间显示一个网格,以便列和行清晰可见。

显然,这不是从QGridLayout完成的,因为它只是吸取小部件的小部件的持有者。我通过覆盖paintEvent函数使我的CellWidgets绘制边框:

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

QGridLayout间距设置为0,但是,在绘制时,网格边框的边缘周围有一个宽度,单元格之间的宽度加倍,因为单元格的边框实际上显示了两次。

任何干净的方法来解决/避免这个问题?

1 个答案:

答案 0 :(得分:1)

我认为你正走向错误的方向。

您应该尝试更改父窗口小部件的背景颜色以获得所需的效果,而不是绘制窗口小部件。

查看此link以获取示例。

我希望这会有所帮助。