2013-12-20 5 views
5

Wenn eine Zelle in QTableView ausgewählt wird, werden die darin enthaltenen Symbole blau hervorgehoben. Wie kann ich die Farbe dieser Hervorhebung steuern oder deaktivieren?Ändern der Farbe von Symbolen in QTableView, wenn die Zelle ausgewählt ist

Ich habe versucht, die QPalette :: Highlight, aber es hat nicht funktioniert.

Edit:

Okay, ich weiß, so weiß, wie die Hintergrundfarbe und Textfarbe und Farbe Highlight zu ändern, aber nicht für ein Symbol. Wenn ich ein Symbol als Dekoration für eine Zelle zurückgebe, erhält es eine hellblaue Markierung, wenn die Zelle ausgewählt wird. Wie entferne ich das?

+0

Ist der Hintergrund des Symbols transparent? –

Antwort

0

Es ist völlig unmöglich, dieses Verhalten mit dem Standard-Stil in Qt zu ändern. Sie müssen Ihren eigenen spezifischen Stil implementieren, um dies zu umgehen.

3

Sie können Stylesheets verwenden, um die Farbe Ihrer Elemente zu definieren. Der Name des ausgewählten Artikels in Ihrem QTableView ist selection-background-color. Wenn Sie also die Farbe dieses Elements ändern, wählen Sie die Hintergrundfarbe, die Sie bevorzugen.

#include <QtWidgets/QApplication> 
#include <QtWidgets/QTableView> 
#include <QStandardItemModel> 

int main(int argc, char* argv[]) { 
    QApplication app(argc, argv); 

    QTableView *table = new QTableView(); 
    QStandardItemModel *model = new QStandardItemModel(2,2); 

    table->setModel(model); 
    table->setStyleSheet("selection-background-color: red"); 

    table->show(); 

    return app.exec(); 
} 

Sehen Sie, wie es auf dem Bild aussieht:

enter image description here

+0

Ja, aber das macht dem Icon nichts. Wenigstens habe ich es nicht verstanden. Kannst du es machen? – 0xbaadf00d

+0

Wenn Sie "Symbol" sagen, meinen Sie den "Tabellenkopf"? –

+0

Nein, ein Symbol, das Sie festlegen können, indem Sie ein Bild als Dekoration für eine Zelle zurückgeben. Jede Zelle kann ihr eigenes Symbol haben. – 0xbaadf00d

Verwandte Themen