当前位置:Gxlcms > mysql > QtCreator链接数据库mysql的demo

QtCreator链接数据库mysql的demo

时间:2021-07-01 10:21:17 帮助过:49人阅读

Qt Creator 链接数据库mysql 的demo 环境:ubuntu 10.10 Qt Creator mysql5 qt4 以及相关的lib(这个问题困扰了不少家伙,我想如果用ubnuntu,这个问题应该不大) 本文假设你已经配置好了的情况下; 用向导建立一个 基于对话框的qt gui application dialog 界

Qt Creator 链接数据库mysql 的demo

环境:ubuntu 10.10 Qt Creator mysql5 qt4 以及相关的lib(这个问题困扰了不少家伙,我想如果用ubnuntu,这个问题应该不大)

本文假设你已经配置好了的情况下;

用向导建立一个 基于对话框的qt gui application

dialog 界面设计包括:

一个textEdit(QTextEdit),用来显示信息,两个button(QPushButton),一个叫做 connect,一个叫做 close。

下面是头文件dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include
#include "QtSql"
#include "QSqlDatabase"
namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
Q_OBJECT

public:
explicit Dialog(QWidget *parent = 0);
~Dialog();

private:
Ui::Dialog *ui;
QSqlDatabase db ; //数据库链接

private slots:
void on_close_clicked();
void on_connect_clicked();
};

#endif // DIALOG_H

下面是dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include "QtSql"
#include "QString"

Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
this->db= QSqlDatabase::addDatabase("QMYSQL"); //设置类型为QMYSQL 或者其它
db.setDatabaseName("sgm");
db.setHostName("127.0.0.1");
db.setUserName("root");
db.setPassword("123");
ui->textEdit->setEnabled(false);
}

Dialog::~Dialog()
{
delete ui;
}


void Dialog::on_connect_clicked()
{
bool success = db.open() ;
QString string ;
if(success)
{
string =QObject::tr("链接成功/t");

}
else
{
string =QObject::tr("失败/n");
}
ui->textEdit->setText(string);
}

void Dialog::on_close_clicked()
{
db.close();
QString string ;
string = QObject::tr("已经关闭/n");
ui->textEdit->setText(string);
}


下面是main.cpp

#include
#include "dialog.h"

int main(int argc, char *argv[])
{

//设置编码格式,解决qt 中文乱码
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QApplication a(argc, argv);
Dialog w;
w.show();

return a.exec();
}

下面附上 pro文件:

#-------------------------------------------------
#
# Project created by QtCreator 2010-11-30T17:03:34
#
#-------------------------------------------------

QT += core gui sql

TARGET = connect
TEMPLATE = app


SOURCES += main.cpp/
dialog.cpp

HEADERS += dialog.h

FORMS += dialog.ui

注意QT一行要加上 sql


当然我愿意不厌其烦的把最后一个dialog.ui文件贴出来,这样你所需要做的就只是拷贝了(不过要是你自己写,我会很欣慰):

我做demo一定要足够简单,所以上面仅仅显示了链接成功字样。

附上dialog.ui:



Dialog



0
0
400
300



Dialog




40
200
98
27



connect





200
200
98
27



close





60
40
211
121







自己写完有个疑问:

事件一般都要有个connect吧,可是为什么这里没有connect呢?

人气教程排行