Qt - kontrolka QColumnView
Stronę tą wyświetlono już: 1871 razy
Kontrolka QColumnView umożliwia utworzenie listy wyboru, gdzie kliknięcie jednej opcji powoduje pojawienie się odpowiadającej jej kolejnym opcjom. Widok takiej kontrolki pokazany został na poniższym rysunku.

Kod w pliku mainwindow.h:
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QStandardItemModel>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- QStandardItemModel *columnTableModel; // model dla kontrolki QColumnWidget
- void resizeEvent(QResizeEvent *) override;
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
Kod programu w pliku mainwindow.cpp:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- // tworzę obiekt klasy QStandardItemModel
- columnTableModel = new QStandardItemModel(ui->columnView);
- // podpinam go pod kontrolkę typu QColumnView
- ui->columnView->setModel(columnTableModel);
- // dane do stworzenia elementów widoku
- QMap<QString, QList<QString>> continents = {
- { "Europa", {"Polska", "Francja", "Hiszpania"} },
- { "Australia", {"Australia"} },
- { "Azja", {"Rosja", "Indie", "Chiny"} }
- };
- // tworzę iterator
- QMapIterator<QString, QList<QString>> continent(continents);
- while(continent.hasNext())
- {
- continent.next();
- // tworzę grupę kontynentu
- QStandardItem *group = new QStandardItem(continent.key());
- // dodaję państawa do danej grupy kontynantu
- foreach (QString country, continent.value())
- {
- QStandardItem *child = new QStandardItem(country);
- // dodaję do głównej grupy
- group->appendRow(child);
- }
- // dodaję do głównego modelu
- columnTableModel->appendRow(group);
- }
- // ustawiam szerokości poszczególnych kolumn
- ui->columnView->setColumnWidths( {150, 150} );
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::resizeEvent(QResizeEvent *event){
- QWidget::resizeEvent(event);
- QRect size = ui->centralWidget->geometry();
- ui->columnView->setGeometry(0, 0, size.width(), size.height());
- }

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