Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Qt

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 14.03.2009, 23:12   #76
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
а ты в чем работаешь?

я работаю в кубунте 8.04. ide для кути - qtcreator (http://www.nowa.cc/showthread.php?t=188554)
зы. кстати, час назад получилось скомпилить прогу в маздае (на виртуалке) с помощью mingw
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Рекомендуем КНС.ру - Acer Nitro XV272UV3bmiiprx - более 50-ти тысяч наименований товаров со склада в МосквеТепловентиляторы Тепломашаренда барнхаусаречной круиз на валаам из москвы ценыкруиз москва валаам кижи


Старый 15.03.2009, 21:37   #77
Wasiliy
Неактивный пользователь
 
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
По умолчанию Re: начинаем изучать QT

pluton, у меня получилось! Скомпил "HelloWorld!". Круто.
У меня в папке debug и release появились *.exe файлы. А как сделать чтоб и под Linux появлялись файлы?

Пробую подключить базу данных, вот такие ошибки:

листинг

Последний раз редактировалось pluton; 15.03.2009 в 22:07.. Причина: запихнул листинг в cut
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:08   #78
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
А как сделать чтоб и под Linux появлялись файлы?

запустить аналогичные команды под линуксом: qmake && make

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
Пробую подключить базу данных, вот такие ошибки:

исходник показывай

Добавлено через 4 минуты
возможно, решение такое:
Цитата:
You need to add QT+=sql line to your .pro file and rerun qmake.

__________________
THE TRUTH IS OUT THERE

Последний раз редактировалось pluton; 15.03.2009 в 22:14.. Причина: Добавлено сообщение
pluton вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:20   #79
Wasiliy
Неактивный пользователь
 
Регистрация: 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();
}
dialog.cpp
Код:
#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;
}
dialog.h
Код:
#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
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:23   #80
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от pluton Посмотреть сообщение
You need to add QT+=sql line to your .pro file and rerun qmake.

это пробовал?
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:31   #81
Wasiliy
Неактивный пользователь
 
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
По умолчанию Re: начинаем изучать QT

Запустилось. В меню открываю файл таблицы, и ни чего не открывается! Хотя форма скомпилировалась!

Последний раз редактировалось Wasiliy; 15.03.2009 в 22:37.. Причина: Добавлено сообщение
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:35   #82
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
В pro файле писать? В самом конце?

да. если есть уже строка с QT, то допиши в конец строки:
QT += core gui sql
если нет, добавь эту строку
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2009, 22:45   #83
Wasiliy
Неактивный пользователь
 
Регистрация: 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
Добавлено через 47 минут
сейчас приложение запускается, но при попытке открыть базу "File->Open File..." Виндовс ошибку выдает. Test.exe - обнаружена ошибка. приложение будет закрыто.

Может можно от куда-нибудь скачать базу '*.db' с исходником подключения в Qt4? Мне не удается что-то найти.

Последний раз редактировалось Wasiliy; 16.03.2009 в 16:37.. Причина: Добавлено сообщение
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 17:41   #84
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
Виндовс ошибку выдает. Test.exe - обнаружена ошибка. приложение будет закрыто.

видимо, какое-то исключение происходит. ты для каждой функции проверяй возвращаемое значение

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
Может можно от куда-нибудь скачать базу '*.db' с исходником подключения в Qt4?

хз. посмотри тут: http://qt-apps.org/
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 17:46   #85
Wasiliy
Неактивный пользователь
 
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
По умолчанию Re: начинаем изучать QT

Цитата:
видимо, какое-то исключение происходит. ты для каждой функции проверяй возвращаемое значение

как это сделать?
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 18:01   #86
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
как это сделать?

вот эти строки в консоли выводит?
Цитата:
" No open DB!!! %s", db.lastError().text().toAscii().data()
"Error! No connection!"

__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 18:32   #87
Wasiliy
Неактивный пользователь
 
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
По умолчанию Re: начинаем изучать QT

Нет не выводит. И такое ощущение, что он базу открывает, но не отображает. Не могу вообще понять в чем проблема.
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 18:37   #88
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Wasiliy, тогда придётся дебаггером прогу колбасить
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 18:39   #89
Wasiliy
Неактивный пользователь
 
Регистрация: 13.03.2009
Сообщений: 18
Репутация: 0
По умолчанию Re: начинаем изучать QT

как это?
Wasiliy вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 18:48   #90
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: начинаем изучать QT

Цитата:
Сообщение от Wasiliy Посмотреть сообщение
как это?

ну, как всегда. запускаешь прогу в дебаггере. ставишь брякпоинт на куда надо, а потом пошагово трейсишь.
зы. у тя есть жаббер-аккаунт? имхо, в жаббере бу удобнее говорить
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:22. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.23035 секунды с 10 запросами