我有一个QTableWidget。我想为行添加交替的背景颜色,但我不能使用QTableWidget :: setAlternatingRowColors,因为我需要一行两行,另一行需要接下来的两行等等(见下图)。 / p>
因此,当我添加一个QTableWidgetItem时,我通过QTableWidgetItem :: setBackground()手动设置相应的背景颜色。
但我没有得到一个平坦的"或"普通"背景,但渐变和圆角:
我想在整个细胞上都有背景颜色,没有进一步的装饰"。我怎么能摆脱这个?
答案 0 :(得分:1)
当您选择单个颜色作为背景(QBrush
构建QColor
)时,样式引擎会尝试渲染样式化背景,在您的情况下会使用边框绘制此渐变。
您可以使用从QBrush
构造的QImage
来欺骗样式引擎,因此渲染引擎会精确地绘制 该图像,仅此而已。在您的情况下,使用具有单个像素的图像,即您想要的颜色作为背景。为此,构造一个1x1大小的QImage
并使用fill
设置像素的颜色,然后将该图像用作画笔:
// Create the image (using the default image format)
QImage img(QSize(1, 1), QImage::Format_ARGB32_Premultiplied);
// Set the color, here light gray:
img.fill(QColor(224, 224, 224));
// Apply the image as the background for the item:
item->setBackground(QBrush(img));