欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Qt Creator 链接数据库mysql 的demo

程序员文章站 2022-06-16 18:29:22
...

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文件贴出来,这样你所需要做的就只是拷贝了(不过要是你自己写,我会很欣慰):

Qt Creator  链接数据库mysql 的demo

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