Qt 怎么在GUI界面中实现打开不同的数据库,并创建不同的数据库?
准备做一个Qt的界面,只是实现了基本功能,但是各种相关细节还没有做到位,今天凑了半天论文,毫无进展,下午把QT界面又拿出来研究了一下,主要是打开文件选择图片后显示。
主要步骤呢,其实很简单,Qt内置一个打开文件的函数
static QString getOpenFileName(QWidget *parent = nullptr,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = nullptr,
Options options = Options());
可以通过这个函数,直接调用,通过load,把file加载进来,即可完成。
首先QT designer中拉一个button进去,点击编辑信号槽,添加一个信号函数。
添加完成后,通过.h中添加函数名,在main中添加相关函数。
加载文件
QString OpenFile, OpenFilePath;
OpenFile = QFileDialog::getOpenFileName(
this,
"Choose image",
"",
"Image Files(*.jpg *.png *.bmp *.pgm *.pbm);;All(*.*)");
QImage img_1;
img_1.load(OpenFile);
显示图像
QLabel *label_1 = new QLabel(this);
label_1->setPixmap(QPixmap::fromImage(img_1));
label_1->resize(QSize(img_1.width(), img_1.height()));
label_1->setGeometry(80, 80, 640, 480);
label_1->show();
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
QSqlDatabase db1 = QSqlDatabase::addDatabase("QMYSQL", "connection1"); //添加一个名为connection1的MySQL数据库驱动
db1.setHostName("localhost");
db1.setDatabaseName("db1"); //指定数据库名为db1
db1.setUserName("user");
db1.setPassword("password");
if(!db1.open()) { //打开数据库
qDebug() << "Failed to connect to database";
return;
}
QSqlQuery query("", db1);
query.exec("CREATE TABLE table1 (id INT PRIMARY KEY, name VARCHAR(30))"); //创建名为table1的表格
query.exec("INSERT INTO table1 (id, name) VALUES (1, 'Tom')"); //向table1表格中插入数据
db1.close(); //关闭数据库连接
QSqlDatabase db2 = QSqlDatabase::addDatabase("QMYSQL", "connection2"); //添加一个名为connection2的MySQL数据库驱动
db2.setHostName("localhost");
db2.setDatabaseName("db2"); //指定数据库名为db2
db2.setUserName("user");
db2.setPassword("password");
if(!db2.open()) { //打开数据库
qDebug() << "Failed to connect to database";
return;
}
QSqlQuery query2("", db2);
query2.exec("CREATE TABLE table2 (id INT PRIMARY KEY, age INT, gender VARCHAR(10))"); //创建名为table2的表格
query2.exec("INSERT INTO table2 (id, age, gender) VALUES (1, 22, 'Male')"); //向table2表格中插入数据
db2.close(); //关闭数据库连接