【问题标题】:Problem with QWidget borders in a QGridLayoutQGridLayout中的QWidget边框问题
【发布时间】:2011-08-02 14:27:13
【问题描述】:

我有一个 QGridLayout,里面装满了我的自定义 QWidget(我称它们为 CellWidget)。我想在所有 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,但是,当它被绘制时,网格边框在边缘周围有一个宽度,而单元格之间的宽度是两倍,因为单元格的边框实际上被显示了两次。

有什么干净的方法可以解决/避免这个问题吗?

【问题讨论】:

    标签: qt qt4


    【解决方案1】:

    我认为你走错了方向。

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

    查看此link 以获取示例。

    我希望这会有所帮助。

    【讨论】:

    • 不是我网格中的所有小部件都可见。我正在制作一个日历小部件,如果该月的第一天不是星期一,那么我的网格不是正方形,它将是一些不规则的形状。仅显示或隐藏网格线似乎有点困难!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多