[geloest] Qt4: QTableView Headerfarben

Alles rund um die Programmierung mit Qt
Antworten
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

[geloest] Qt4: QTableView Headerfarben

Beitrag von nando »

Hi,
ich habe eine QTableView, die die Daten aus meinem Model darstellt.

Im Modell habe ich die methode headerData ueberschrieben um die Text & Hintergrundfarbe der einzelnen Spalten-Header anzugeben.

Die Vordergrundfarbe passt, die hintergrundfarbe nur solange ich nicht in die table clicke, dann wird sie so ausgegraut... Die TExtfarbe bleibt korret...

Weiss jemand woran das liegen koennten....

Im Modell hab ich sowas :

Code: Alles auswählen



QVariant 
MyTableModel::headerData(int section, Qt::Orientation orientation, int role) const
{
    if(orientation == Qt::Horizontal) {
	if(section < m_pilotColumnList.size()) {	    
	    if(role == Qt::DisplayRole) {    			
		QVariant v(m_pilotColumnList[section].pColumnData->displayedName);
		return v;
	    }
	    else if(role == Qt::BackgroundRole) {
//		LOG_DEBUG("headerdata***");
		return m_pilotColumnList[section].header_bgColor;
	    }
	    else if(role == Qt::ForegroundRole) {
		return m_pilotColumnList[section].header_fgColor;
	    }
	    else if(role == Qt::ToolTipRole) {
		return m_pilotColumnList[section].pColumnData->description;
	    }
	}
    }
    else if(orientation == Qt::Vertical) {
	if(role == Qt::DisplayRole) {  	    
	    return section+1;
	}
    }
   

    return QVariant();
}


Gruss,
Nando
Zuletzt geändert von nando am 30. April 2008 10:15, insgesamt 1-mal geändert.
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

Ich habs,

das Verhalten tritt nicht bei allen Styles auf.

Um es permanent zu unterdruecken muss man beim header der View
folgende methode aufrufen:

Code: Alles auswählen

horizontalHeader()->setHighlightSections(false);
Gruss,
Nando
Antworten