gpt4 book ai didi

c++ - 如何为 QTableWidgetItem 设置 "plain"或 "flat"背景颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:52 27 4
gpt4 key购买 nike

我有一个 QTableWidget。我想为行设置交替的背景颜色,但我不能使用 QTableWidget::setAlternatingRowColors,因为我需要一种颜色用于两行,另一种用于接下来的两行,依此类推(见下图)。

因此,当我添加一个 QTableWidgetItem 时,我通过 QTableWidgetItem::setBackground() 手动设置相应的背景颜色。

但是我没有得到一个“平坦”或“普通”的背景,而是一个渐变和圆角:

Cell color

我希望所有单元格都具有背景颜色,而无需进一步“装饰”。我怎样才能摆脱这个?

最佳答案

当您选择单一颜色作为背景时(QBrushQColor 构建),样式引擎会尝试渲染样式化背景,在您的例子中它绘制了这个带边框的渐变。

您可以通过使用从 QImage 构建的 QBrush 来欺骗样式引擎,因此渲染引擎完全绘制该图像,仅此而已.在您的情况下,使用具有单个像素的图像,即您想要作为背景的颜色。为此,构造一个 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));

关于c++ - 如何为 QTableWidgetItem 设置 "plain"或 "flat"背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24974202/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com