视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
QtCreator链接数据库mysql的demo
2020-11-09 15:34:16 责编:小采
文档


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呢?

下载本文
显示全文
专题