item->setFont(index, font); item->setTextColor(index, colorText); item->setBackgroundColor(item, colorFill);
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QTreeWidget>#include <QTreeWidgetItem>#include <QStringList>class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); // эти функции задают цвет фона и текста для не выделенного item-а void setUnselColorText(QTreeWidgetItem *item, QColor colorText); void setUnselColorFill(QTreeWidgetItem *item, QColor colorFill); // эти две функции не могу реализовать: должны задавать цвет фона и текста для выделенния item-а, // если для него я применю данные функции void setSelectColorText(QTreeWidgetItem *item, QColor colorText); void setSelectColorFill(QTreeWidgetItem *item, QColor colorFill);private: QTreeWidget *treeWidget; QTreeWidgetItem *item1; QTreeWidgetItem *item2; QTreeWidgetItem *item3; QStringList elements;};#endif // MAINWINDOW_H
#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ setFixedSize(200, 200); move(150, 150); treeWidget = new QTreeWidget(this); treeWidget->setFixedSize(180, 180); treeWidget->move(10, 10); elements << "Column1" << "Column2" << "Column2"; treeWidget->setHeaderLabels(elements); treeWidget->setColumnCount(3); for(int i=0; i<3; i++) treeWidget->setColumnWidth(i, 55); treeWidget->show(); elements.clear(); elements << "11" << "12" << "13"; item1 = new QTreeWidgetItem(elements); treeWidget->addTopLevelItem(item1); elements.clear(); elements << "21" << "22" << "23"; item2 = new QTreeWidgetItem(elements); treeWidget->addTopLevelItem(item2); setUnselColorFill(item2, Qt::green); setUnselColorText(item2, Qt::red); elements.clear(); elements << "31" << "32" << "33"; item3 = new QTreeWidgetItem(elements); treeWidget->addTopLevelItem(item3);}void MainWindow::setUnselColorText(QTreeWidgetItem *item, QColor colorText){ for(int i=0; i<3; i++) item->setTextColor(i, colorText);}void MainWindow::setUnselColorFill(QTreeWidgetItem *item, QColor colorFill){ for(int i=0; i<3; i++) item->setBackgroundColor(i, colorFill);}void MainWindow::setSelectColorText(QTreeWidgetItem *item, QColor colorText){ // не знаю как реализовать}void MainWindow::setSelectColorFill(QTreeWidgetItem *item, QColor colorFill){ // не знаю как реализовать}
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}