Qt - wykorzystanie klasy QSqlQueryModel do wyświetlania rekordów z bazy danych w kontrolce QTableView
Stronę tą wyświetlono już: 1700 razy
W kontrolce QTableView można w bardzo łatwy sposób wyświetlać dane wykorzystując klasę QSqlQueryModel. Oto przykład:
W pliku mainwindow.h:
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <mysql.h>
- #include <QSqlQueryModel>
- #include <QSqlDatabase>
- #include <QSqlError>
- #include <QMessageBox>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- QSqlQueryModel *queryModel;
- QSqlDatabase db;
- void resizeEvent(QResizeEvent *event);
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
W pliku mainwindow.cpp:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- db = QSqlDatabase::addDatabase("QMYSQL");
- db.setDatabaseName("library");
- db.setHostName("localhost");
- db.setPassword("password");
- db.setPort(3306);
- db.setUserName("gienek");
- if(!db.open()){
- QMessageBox::warning(this, "Database connection error", db.lastError().text());
- }
- queryModel = new QSqlQueryModel(this); // tworzę obiekt modelu
- queryModel->setQuery("SELECT id, title, author FROM books"); // dodaję zapytanie
- ui->tvBooks->setModel(queryModel); // podpinam model pod kontrolkę typu QTableView
- }
- void MainWindow::resizeEvent(QResizeEvent *event){
- QRect r = ui->centralWidget->geometry();
- ui->tvBooks->setGeometry(0, 0, r.width(), r.height());
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
Powyższy kod spowoduje wyświetlenie danych z tabeli books w kontrolce QTableView.


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