QTableView + QSqlTableModel показывает пустое белое окошко |
Здравствуйте, гость ( Вход | Регистрация )
QTableView + QSqlTableModel показывает пустое белое окошко |
genusatplay |
15.12.2008, 0:44
Сообщение
#1
|
Студент Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: 0 |
я чтото никак в толк немогу взять почему неработает showdoc() показывает пустое белое окошко
подскажите плиз что нетак написал? MAINWINDOW_H #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QtSql> #include <QtGui> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); private slots: void connectDb(); void disconnectDb(); void showDoc(); private: void createMenus(); QSqlDatabase db; QAction *exitAction; QAction *connectAction; QAction *disconnectAction; QAction *showdocsAction; QMenu *dbMenu; QMenu *docMenu; QSqlTableModel docs; QTableView docsview; }; #endif MainWindow.cpp #include "mainwindow.h" MainWindow::MainWindow() { setWindowTitle(tr("Database editor")); createMenus(); } void MainWindow::createMenus() { dbMenu = menuBar()->addMenu(QObject::tr("&Database")); connectAction = dbMenu->addAction(tr("&Connect")); connect(connectAction,SIGNAL(triggered()),this,SLOT(connectDb())); disconnectAction = dbMenu->addAction(tr("&Disconnect")); disconnectAction->setDisabled(true); connect(disconnectAction,SIGNAL(triggered()),this,SLOT(disconnectDb())); dbMenu->addSeparator(); exitAction = dbMenu->addAction(QObject::tr("E&xit")); exitAction->setShortcut(QKeySequence(QObject::tr("Ctrl+Q"))); exitAction->setStatusTip(QObject::tr("Exit programm")); connect(exitAction,SIGNAL(triggered()),qApp,SLOT(quit())); docMenu = menuBar()->addMenu(tr("Documents")); showdocsAction = docMenu->addAction(tr("Show Documents")); showdocsAction->setDisabled(true); connect(showdocsAction,SIGNAL(triggered()),this,SLOT(showDoc())); } void MainWindow::connectDb() { db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("docs.sqlite"); if (db.open()){ disconnectAction->setEnabled(true); showdocsAction->setEnabled(true); connectAction->setDisabled(true); } else { QMessageBox::warning(this,"Database Error",db.lastError().text()); } } void MainWindow::disconnectDb() { db.close(); if ( !db.isOpen() ){ connectAction->setEnabled(true); disconnectAction->setDisabled(true); showdocsAction->setDisabled(true); } else { QMessageBox::warning(this,"Database Error","Can't disconnected from database"); } } void MainWindow::showDoc() { docs.setTable("elements"); docs.setSort(0,Qt::AscendingOrder); docs.select(); docsview.setModel(&docs); docsview.setWindowTitle(tr("List of documents")); docsview.resizeColumnsToContents(); docsview.show(); } посмотрел несколько примеров из книги... и чета ненашел каким образом коннектится БД с qsqltablemodel там после открытия бд сразу идет выборка в таблицу и работает видимо, но в тех примерах все в 1ой процедуре делается QSqlTableModel::QSqlTableModel ( QObject * parent = 0, QSqlDatabase db = QSqlDatabase() ) Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used. ну у меня вроде 1 коннект.. так что все должно работать но неработает ( Сообщение отредактировал Litkevich Yuriy - 31.1.2009, 12:42 |
|
|
Текстовая версия | Сейчас: 5.12.2024, 14:09 |