Advertisement
DarkoreXOR

Untitled

May 19th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.94 KB | None | 0 0
  1. void MainWindow::on_pushButton_clicked()
  2. {
  3.     ui->treeWidget->clear();
  4.  
  5.     QTreeWidgetItem *itm = new QTreeWidgetItem();
  6.  
  7.     //Создание столбцов элемента дерева, первым параметром передается целочисленное
  8.     //значение которое указывает на индекс(номер столбца), а второй параметр
  9.     //присваивает текст данному столбцу верхнего уровня
  10.     itm->setText(0, "Столбец №1"); // При помощи метода setText мы устанавливаем индекс и текст элемента
  11.     itm->setText(1, "Столбец №2"); // который в дальнейшем будет использоваться для верхнего уровня
  12.     itm->setText(2, "Столбец №3");
  13.     itm->setText(3, "Столбец №4");
  14.     itm->setText(4, "Столбец №5");
  15.  
  16.     // Здесь через обращение к объекту itm и метод setBackgroundColor(); мы задаем цвет фона конкретной ячейки нашего дерева.
  17.     //Индекс ячейки передается по аналогии с предыдущим примером
  18.     itm->setBackgroundColor(0, Qt::red);   // В данном примере в качестве задания
  19.     itm->setBackgroundColor(1, Qt::blue);  // цвета фона используется перечисление цветов из базового класса Qt
  20.     itm->setBackgroundColor(2, Qt::yellow);
  21.     itm->setBackgroundColor(3, Qt::green);
  22.     itm->setBackgroundColor(4, Qt::gray);
  23.  
  24.     // В данных строках кода задается цвет самого текста по аналогии с примером где мы задавали цвет фона конкретной ячейки
  25.     itm->setTextColor(0, QColor(255,255,255,255));  // В данном примере мы используем для задания цвета конструктор базового класса QColor.
  26.     itm->setTextColor(1, QColor(255,255,255,255));  // Первые три значения от 0 до 255 задают по системе RGB интенсивность цвета
  27.     itm->setTextColor(2, QColor(200,0,100,255));    // Последнее четвертое значение задает прозрачность данного эффекта
  28.     itm->setTextColor(3, QColor(200,0,100,255));
  29.     itm->setTextColor(4, QColor(255,255,255,255));
  30.  
  31.  
  32.     ui->treeWidget->setColumnCount(7);  // Создаем необходимое количество столбцов. Данным методом можно скрывать не используемые столбцы
  33.  
  34.     ui->treeWidget->addTopLevelItem(itm);   // Здесь мы устанавливаем в качестве верхнего уровня наш элемент itm
  35.  
  36.     // Создание дочерних элементов для itm
  37.     QTreeWidgetItem *child = new QTreeWidgetItem();
  38.     QTreeWidgetItem *child2 = new QTreeWidgetItem();
  39.     QTreeWidgetItem *child3 = new QTreeWidgetItem();
  40.     QTreeWidgetItem *child4 = new QTreeWidgetItem();
  41.  
  42.     // Задание индекса и текста дочерним элементам для верхнего уровня элемента itm
  43.     child->setText(0, "Текст ребенка 1 - 1 столбец");
  44.     child2->setText(0, "Текст ребенка 2 - 1 столбец");
  45.     child3->setText(1, "Текст ребенка 1 - 2 столбец");
  46.     child4->setText(2, "Текст ребенка 2 - 3 столбец");
  47.     // Присваивание фонового цвета дочерним элементам по индексу. Работает по аналогии с присваиванием цвета основному элементу
  48.     child->setBackgroundColor(0, Qt::blue);
  49.     child2->setBackgroundColor(0, Qt::yellow);
  50.     child3->setBackgroundColor(1, Qt::green);
  51.     child4->setBackgroundColor(2, Qt::gray);
  52.     // Привязка дочерних элементов к itm верхнего уровня
  53.     itm->addChild(child);
  54.     itm->addChild(child2);
  55.     itm->addChild(child3);
  56.     itm->addChild(child4);
  57.  
  58.     //Второй уровень
  59.     QTreeWidgetItem *itm2 = new QTreeWidgetItem();
  60.  
  61.     itm2->setText(0, "Столбец №1");
  62.     itm2->setText(1, "Столбец №2");
  63.     itm2->setText(2, "Столбец №3");
  64.     itm2->setText(3, "Столбец №4");
  65.     itm2->setText(4, "Столбец №5");
  66.  
  67.     itm2->setBackgroundColor(0, Qt::red);
  68.     itm2->setBackgroundColor(1, Qt::blue);
  69.     itm2->setBackgroundColor(2, Qt::yellow);
  70.     itm2->setBackgroundColor(3, Qt::green);
  71.     itm2->setBackgroundColor(4, Qt::gray);
  72.  
  73.     itm2->setTextColor(0, QColor(255,255,255,255));
  74.     itm2->setTextColor(1, QColor(255,255,255,255));
  75.     itm2->setTextColor(2, QColor(200,0,100,255));
  76.     itm2->setTextColor(3, QColor(200,0,100,255));
  77.     itm2->setTextColor(4, QColor(255,255,255,255));
  78.  
  79.     ui->treeWidget->addTopLevelItem(itm2);
  80.  
  81.     QTreeWidgetItem *child11 = new QTreeWidgetItem();
  82.     QTreeWidgetItem *child22 = new QTreeWidgetItem();
  83.     QTreeWidgetItem *child33 = new QTreeWidgetItem();
  84.     QTreeWidgetItem *child44 = new QTreeWidgetItem();
  85.  
  86.     child11->setText(2, "Текст ребенка 2 - 2 столбец");
  87.     child22->setText(3, "Текст ребенка 2 - 4 столбец");
  88.  
  89.     child33->setText(4, "Текст ребенка 2 - 5 столбец");
  90.     child44->setText(1, "Текст ребенка 2 - 2 столбец");
  91.  
  92.     child11->setBackgroundColor(2, Qt::blue);
  93.     child22->setBackgroundColor(3, Qt::yellow);
  94.     child33->setBackgroundColor(4, Qt::green);
  95.     child44->setBackgroundColor(1, Qt::gray);
  96.  
  97.     itm2->addChild(child11);
  98.     itm2->addChild(child22);
  99.     itm2->addChild(child33);
  100.     itm2->addChild(child44);
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement