Qt - kontrolka QTreeWidget
Stronę tą wyświetlono już: 1682 razy
Kontrolka QTreeWidget umożliwia tworzenie drzewiastej listy, gdzie każdy element może zawierać elementy potomne. Typowym przykładem zastosowania takiej kontrolki jest np. wyświetlanie rozwijanej struktury listy folderów w przeglądarkach.

Kod w pliku mainwindow.h:
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QDebug>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- // slot podpięty pod sygnał podwójnego kliknięcia elementu w kontrolce treeWidget
- void on_treeWidget_doubleClicked(const QModelIndex &index);
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
Kod w pliku mainwindow.cpp:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- ui->treeWidget->setColumnCount(2); // ustawiam liczbę kolumn (domyślnie jedna)
- QTreeWidgetItem *itemEurope = new QTreeWidgetItem(ui->treeWidget); // tworzę główny korzeń drzewa
- itemEurope->setText(0, "Europa"); // ustawiam tekst pierwszej kolumny
- QIcon iconFolder(":/images/open.png"); // tworzę ikonkę folderu
- QIcon iconZSRE(":/images/ue.png"); // tworzę ikonkę ZSRE
- itemEurope->setIcon(0, iconFolder); // ustawiam ikonkę dla głównego korzenia
- QTreeWidgetItem *itemZSRE = new QTreeWidgetItem(itemEurope); // tworzę gałąź głównego korzenia
- itemZSRE->setText(0, "ZSRE"); // ustawiam tekst pierwszej kolumny
- itemZSRE->setText(1, "Związek Socjalistycznych Republik Europejskich"); // ustawiam tekst drugiej kolumny
- itemZSRE->setIcon(0, iconZSRE); // ustawiam ikonkę
- itemEurope->addChild(itemZSRE); // dodaję element do korzenia
- // lista krajów:
- QStringList ZSRE = {
- "Austria",
- "Belgia",
- "Bułgaria",
- "Chorwacja",
- "Cypr",
- "Czechy",
- "Dania",
- "Estonia",
- "Finlandia",
- "Francja",
- "Grecja",
- "Hiszpania",
- "Holandia",
- "Irlandia",
- "Litwa",
- "Luksemburg",
- "Łotwa",
- "Malta",
- "Niemcy",
- "Polska",
- "Portugalia",
- "Rumunia",
- "Słowacja",
- "Słowenia",
- "Szwecja",
- "Węgry",
- "Wielka Brytania",
- "Włochy"
- };
- foreach(QString country, ZSRE){
- QTreeWidgetItem *countryChild = new QTreeWidgetItem(itemZSRE); // tworzę element kraju
- countryChild->setText(0, country); // dodaję tekst
- itemZSRE->addChild(countryChild); // dodaję element potomny do itemZSRE
- }
- ui->treeWidget->addTopLevelItem(itemEurope); // dodaję korzeń z elementami potomnymi do kontrolki QTreeWidget
- ui->treeWidget->setHeaderLabels({"Nazwa", "Opis"}); // ustawiam opis kolumn
- ui->treeWidget->setColumnWidth(0, 150); // ustawiam rozmiar pierwszej kolumny
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_treeWidget_doubleClicked(const QModelIndex &index)
- {
- qDebug() << index.data().toString(); // wypisuję w konsoli Qt Creatora informację o klikniętym elemencie
- }

Tytuł:
Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów
Autor:
Adrian Ostrowski, Piotr Gaczkowski

Tytuł:
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet)
Autor:
Jerzy Grębosz

Tytuł:
Programowanie wieloplatformowe z C++ i wxWidgets 3
Autor:
Bartosz W. Warzocha

Tytuł:
Język C++ i przetwarzanie współbieżne w akcji. Wydanie II
Autor:
Anthony Williams

Tytuł:
C++ dla bystrzaków. Wydanie VII
Autor:
Stephen R. Davis

Tytuł:
Tablice informatyczne. Podstawy C++
Autor:
Radosław Sokół

Tytuł:
Opus magnum C++11. Programowanie w języku C++ (komplet)
Autor:
Jerzy Grębosz

Tytuł:
OpenCV 3. Komputerowe rozpoznawanie obrazu w C++ przy użyciu biblioteki OpenCV
Autor:
Adrian Kaehler, Gary Bradski

Tytuł:
C++ w 24 godziny. Wydanie VI
Autor:
Rogers Cadenhead, Jesse Liberty

Tytuł:
C++ Optymalizacja kodu. Sprawdzone techniki zwiększania wydajności
Autor:
Guntheroth Kurt