Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
14.03.2009, 23:12 | #76 | |||||||||||||||||||||||
Re: начинаем изучать QT
я работаю в кубунте 8.04. ide для кути - qtcreator (http://www.nowa.cc/showthread.php?t=188554) зы. кстати, час назад получилось скомпилить прогу в маздае (на виртуалке) с помощью mingw
__________________
THE TRUTH IS OUT THERE |
||||||||||||||||||||||||
Реклама: | Рекомендуем КНС.ру - Acer Nitro XV272UV3bmiiprx - более 50-ти тысяч наименований товаров со склада в Москве | Тепловентиляторы Тепломаш | аренда барнхауса | речной круиз на валаам из москвы цены | круиз москва валаам кижи |
15.03.2009, 21:37 | #77 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
pluton, у меня получилось! Скомпил "HelloWorld!". Круто.
У меня в папке debug и release появились *.exe файлы. А как сделать чтоб и под Linux появлялись файлы? Пробую подключить базу данных, вот такие ошибки: листинг Последний раз редактировалось pluton; 15.03.2009 в 22:07.. Причина: запихнул листинг в cut |
15.03.2009, 22:08 | #78 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: начинаем изучать QT
запустить аналогичные команды под линуксом: qmake && make
исходник показывай Добавлено через 4 минуты возможно, решение такое:
__________________
THE TRUTH IS OUT THERE Последний раз редактировалось pluton; 15.03.2009 в 22:14.. Причина: Добавлено сообщение |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15.03.2009, 22:20 | #79 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
main.cpp
Код:
#include "dialog.h" int main(int argc,char *argv[]) { QApplication a(argc, argv); DMainDialog *dialog = new DMainDialog(); dialog->show(); return a.exec(); } Код:
#include "dialog.h" #define HEIGHT_MENU 30 #define SQLDATABASETYPE "QSQLITE" DMainDialog::DMainDialog(QWidget *parent) { m_qsFileAptdb = ""; setFixedSize(640, 480); m_qmbMenuBar = new QMenuBar(this); m_qmbMenuBar->setGeometry(0,0,size().rwidth(),HEIGHT_MENU); m_qmFileMenu = new QMenu("&File"); m_qmEditMenu = new QMenu("&Edit"); //m_qmFileMenu->setTearOffEnabled(false); m_qmFileMenu->addAction("&Open File...", this, SLOT(sl_bOpenFile())); m_qmFileMenu->addAction("&Save", this, SLOT(sl_bSaveFile())); m_qmFileMenu->addAction("Save &As...", this, SLOT(sl_bSaveFileAs())); m_qmbMenuBar->addMenu(m_qmFileMenu); m_qmEditMenu->addAction("&Undo", this, SLOT(sl_bUndo())); m_qmEditMenu->addAction("&Redo", this, SLOT(sl_bRedo())); m_qmbMenuBar->addMenu(m_qmEditMenu); m_qmbMenuBar->show(); m_qtwMainTree = new QTreeWidget(this); m_qtwMainTree->setGeometry(2, HEIGHT_MENU+2, size().rwidth()/3-2, size().rwidth()-HEIGHT_MENU-2); m_qtvView = new QTableView(this); m_qtvView->setGeometry(size().rwidth()/3+2, HEIGHT_MENU+2, size().rwidth()-2, size().rwidth()-HEIGHT_MENU-2); } DMainDialog::~DMainDialog() { } bool DMainDialog::sl_bUndo() { return true; } bool DMainDialog::sl_bRedo() { return true; } bool DMainDialog::createConnection(QString NameDatabase) { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(NameDatabase); if(!db.open()) { qWarning(" No open DB!!! %s", db.lastError().text().toAscii().data()); return false; } return true; } bool DMainDialog::sl_bOpenFile() { m_qsFileAptdb = QFileDialog::getOpenFileName(this, "Open Dialog", "./source/", "*.aptdb"); setWindowTitle(m_qsFileAptdb); qWarning("m_qsFileAptdb = %s", m_qsFileAptdb.toAscii().data()); if(!createConnection(m_qsFileAptdb)) { qWarning("Error! No connection!"); return false; } /* QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(m_qsFileAptdb); if(!db.open()) { } */ QSqlQuery query("SELECT * FROM rask;");//(db); /* if(!query.isActive()) { qWarning("query.isActive() error!!!"); } */ if(!query.exec("SELECT * FROM rask;")) qWarning("Error! No query! %s, type[%d]", query.lastError().text().toAscii().data(), query.lastError().type()); //unsupported file format Unable to execute statement, type[2] QSqlRecord rec = query.record(); int ID; int subID; QString subIDName; while (query.next()) { ID = query.value(rec.indexOf("ID")).toInt(); subID = query.value(rec.indexOf("subID")).toInt(); subIDName = query.value(rec.indexOf("subIDName")).toString(); } qWarning("ID\tsubID\tsubIDName"); qWarning("%d\t%d\t%s", ID, subID, subIDName.toAscii().data()); /* m_qstmModel->setTable("rask"); m_qstmModel->select(); m_qstmModel->setEditStrategy(QSqlTableModel::OnManualSubmit); m_qtvView->setModel(m_qstmModel); //m_qtvView->show(); */ //db.close(); /* m_qsqldbDataBase.setDatabaseName(m_qsFileAptdb); QSqlQuery m_qsqRasc(m_qsqldbDataBase); if(!m_qsqldbDataBase.open()) qWarning("DataBase not open"); m_qsqRasc.exec("SELECT * FROM rasc"); QSqlRecord rec = m_qsqRasc.record(); int ID; int subID; QString subIDName; while (m_qsqRasc.next()) { ID = m_qsqRasc.value(rec.indexOf("ID")).toInt(); subID = m_qsqRasc.value(rec.indexOf("subID")).toInt(); subIDName = m_qsqRasc.value(rec.indexOf("subIDName")).toString(); } */ if(m_qsFileAptdb!="") return true; else return false; } bool DMainDialog::sl_bSaveFileAs() { m_qsFileAptdb = QFileDialog::getSaveFileName(this, "Open Dialog", "./source/", "*.aptdb"); setWindowTitle(m_qsFileAptdb); if(m_qsFileAptdb!="") return true; else return false; } bool DMainDialog::sl_bSaveFile() { return true; } Код:
#ifndef MAINDIALOG #define MAINDIALOG #include <QtGui/QLabel> #include <QtGui/QApplication> #include <QtGui/QPixmap> #include <QtGui/QPushButton> #include <QtGui/QMessageBox> #include <QtGui/QMainWindow> #include <QtCore/QString> #include <QtCore/QDir> #include <QtCore/QFile> #include <QtGui/QFileDialog> #include <QtGui/QTreeWidget> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlRecord> #include <QtSql/QSqlQuery> #include <QtSql/QSqlError> #include <QtGui/QTableView> #include <QtSql/QSqlTableModel> #include <QtGui/QMenuBar> #include <QtGui/QMenu> class DMainDialog : public QMainWindow { Q_OBJECT public: DMainDialog(QWidget *parent = NULL); ~DMainDialog(); private: QMenuBar *m_qmbMenuBar; QMenu *m_qmFileMenu; QMenu *m_qmEditMenu; QString m_qsFileAptdb; QTreeWidget *m_qtwMainTree; QTableView *m_qtvView; QSqlTableModel *m_qstmModel; bool createConnection( QString ); private slots: bool sl_bOpenFile(); bool sl_bSaveFile(); bool sl_bSaveFileAs(); bool sl_bUndo(); bool sl_bRedo(); }; #endif |
15.03.2009, 22:23 | #80 | |||||||||||||||||||||||
Re: начинаем изучать QT
это пробовал?
__________________
THE TRUTH IS OUT THERE |
||||||||||||||||||||||||
15.03.2009, 22:31 | #81 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
Запустилось. В меню открываю файл таблицы, и ни чего не открывается! Хотя форма скомпилировалась!
Последний раз редактировалось Wasiliy; 15.03.2009 в 22:37.. Причина: Добавлено сообщение |
15.03.2009, 22:35 | #82 | |||||||||||||||||||||||
Re: начинаем изучать QT
да. если есть уже строка с QT, то допиши в конец строки: QT += core gui sql если нет, добавь эту строку
__________________
THE TRUTH IS OUT THERE |
||||||||||||||||||||||||
15.03.2009, 22:45 | #83 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
Реально помогло. Форма скомпилировалась. Пытаюсь открыть базу "File->Open File...", выбираю свою базу и неокрывает. Что это может быть?
pro файл: Код:
TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . # Input HEADERS += dialog.h main.h SOURCES += dialog.cpp main.cpp QT += core gui sql сейчас приложение запускается, но при попытке открыть базу "File->Open File..." Виндовс ошибку выдает. Test.exe - обнаружена ошибка. приложение будет закрыто. Может можно от куда-нибудь скачать базу '*.db' с исходником подключения в Qt4? Мне не удается что-то найти. Последний раз редактировалось Wasiliy; 16.03.2009 в 16:37.. Причина: Добавлено сообщение |
16.03.2009, 17:41 | #84 | ||||||||||||||||||||||||||||||||||||||||||||||
Re: начинаем изучать QT
видимо, какое-то исключение происходит. ты для каждой функции проверяй возвращаемое значение
хз. посмотри тут: http://qt-apps.org/
__________________
THE TRUTH IS OUT THERE |
|||||||||||||||||||||||||||||||||||||||||||||||
16.03.2009, 17:46 | #85 | |||||||||||||||||||
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
как это сделать? |
|||||||||||||||||||
16.03.2009, 18:01 | #86 | ||||||||||||||||||||||||||||||||||||||||||
Re: начинаем изучать QT
вот эти строки в консоли выводит?
__________________
THE TRUTH IS OUT THERE |
|||||||||||||||||||||||||||||||||||||||||||
16.03.2009, 18:32 | #87 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
Нет не выводит. И такое ощущение, что он базу открывает, но не отображает. Не могу вообще понять в чем проблема.
|
16.03.2009, 18:37 | #88 |
Re: начинаем изучать QT
Wasiliy, тогда придётся дебаггером прогу колбасить
__________________
THE TRUTH IS OUT THERE |
|
16.03.2009, 18:39 | #89 |
Неактивный пользователь
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
|
Re: начинаем изучать QT
как это?
|
16.03.2009, 18:48 | #90 | |||||||||||||||||||||||
Re: начинаем изучать QT
ну, как всегда. запускаешь прогу в дебаггере. ставишь брякпоинт на куда надо, а потом пошагово трейсишь. зы. у тя есть жаббер-аккаунт? имхо, в жаббере бу удобнее говорить
__________________
THE TRUTH IS OUT THERE |
||||||||||||||||||||||||