gpt4 book ai didi

c++ - 当焦点在 QTableView 上丢失时丢失背景颜色

转载 作者:行者123 更新时间:2023-11-28 04:12:56 26 4
gpt4 key购买 nike

我在现有产品中有一个 QTableView。我已将其更改为对无法编辑的行使用灰色背景。但是,当表格失去焦点时,QT 会将背景颜色更改为灰色。我在 Internet 上找到了很多东西可以尝试,但没有成功。

我最接近的方法是在 createEditor 中创建的编辑器上设置调色板。设置 QTableView 本身的调色板时我没有运气。当 table 失去焦点时,我看到我使用的测试颜色(黄色)在变灰之前短暂闪烁。

我一直在玩 QT Creator 提供的 frozencolumn 示例,但运气不太好,因为没有编辑器。

  QPalette p = frozenTableView->palette();
p.setColor(QPalette::Active, QPalette::Highlight, Qt::darkGreen);
p.setColor(QPalette::Disabled, QPalette::Highlight, Qt::green);
p.setColor(QPalette::Inactive, QPalette::Highlight, Qt::yellow);
p.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::darkYellow);
frozenTableView->setPalette(p);

frozenTableView->setStyleSheet("QTableView { border: none;"
"background-color: #8EDE21;"
"selection-background-color: #999}"
"QTableView:!active {"
"selection-background-color: yellow;"
"selection-color: yellow"
);

还有什么我可以尝试的吗?这就像 QT 在失去焦点时调用 setPalette() 并撤消我设法实现的任何事情。

最佳答案

使用 frozenTableWidget 进行测试可能有点困惑,因为它是 2 个 QTableWidget 的组合。

   // QPalette p = frozenTableView->palette();
QPalette p = palette();
p.setColor(QPalette::Inactive, QPalette::Highlight, p.color(QPalette::Active, QPalette::Base));
setPalette(p);

这会在失去焦点时移除突出显示的颜色,如果这是您想要的?

关于c++ - 当焦点在 QTableView 上丢失时丢失背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57289010/

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