Qt:编辑条目时 QtAbstractItemView (QTableView) 的背景

问题描述 投票:0回答:3

我有以下问题。 我的

QTableView
的背景颜色设置为
black
,(内容)颜色设置为
white
。因此,白色文本出现在黑色背景上 - 一切似乎都是正确的。但是,当编辑(在编辑模式下键入)内容颜色变为黑色并且由于黑色背景而变得完全不可见时,但编辑工作正常。确认后 - 颜色恢复为白色。如何将当前正在编辑的文本的颜色设置为白色(最好通过样式表)或在这种情况下停止此类更改?

c++ qt styling qtableview
3个回答
1
投票

您必须在样式表中使用

:edit-focus
和/或
:focus
状态。

QTableView:edit-focus {
   // style here
}

有关所有可用状态的列表,请查看此处


0
投票

设置调色板终于成功了。

QPalette 调色板;

palette.setColor(QPalette::Text, Qt::white);

qApp->setPalette(调色板);


0
投票

首先,当tableview的某个单元格处于编辑状态时,它被一个QLineEdit覆盖。您可以通过在样式表中将QLineEdit的背景颜色设置为透明来验证这一点

QLineEdit{
    background-color: transparent;
  }

设置完成后,您会发现单元格处于编辑状态,有正在编辑的文本和显示的文本。

因此,解决这个问题的方法是在你的样式表中设置QLineEdit的样式。

QLineEdit {
    background-color: rgb(68,67,49);
    border: 0px;
    font-size:13px;
    font-family:SimHei;
    color:#ADB5BD;
    qproperty-alignment: AlignCenter;
} 

© www.soinside.com 2019 - 2024. All rights reserved.