Qt常用操作总结一

文章目录

        • 打开一个窗口获取指定格式文件绝对路径
          • 获取输入的一个整数(返回QString)
          • 中文乱码
        • 弹出一个message提示窗口
        • 在tableview中打开一个数据库的表

打开一个窗口获取指定格式文件绝对路径

  • 代码
#include 
#include 
{
	QString aFile = QFileDialog::getOpenFileName(this,tr("选择文件"),"",tr("文本文件 (*.txt);;C程序 (*.c *.cpp);;所有的文件 (*.*)"));
}

  • 说明:
  1. 函数原型
 QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = ...)
  1. getOpenFileName创建一个文件窗口用于选择指定格式的文件。
    第二个参数为:打开窗口标题
    第三个参数为:路径,可选择默认
    第四个参数为文件类型。
获取输入的一个整数(返回QString)
中文乱码

参考:https://blog.csdn.net/u013894391/article/details/93928264
使用MinGW编译器和对字符串使用tr();

QMessageBox::warning(this,tr("错误"),tr("打开数据库失败"),QMessageBox::Ok,QMessageBox::NoButton);

弹出一个message提示窗口

#include 
QMessageBox::information(this, "成功", "成功连接数据库\n",QMessageBox::Ok,QMessageBox::NoButton);








#### SQLite数据库
##### 创建一个SQLite数据库
- 利用sqlite expert pro创建数据库,创建表,设计表结构。

##### 导入CSV文件
- 利用SQLite官方的sqlite.exe文件
1. sqlite.exe命令窗口下
```bash
sqlite.exe yourdb.db3
  1. 进入sqlite命令行后可使用

     注意,非SQL命令之前有点符号:"."
    
  • .database 查看数据库
  • .table 查看数据库中的表
  • .separator “,” 设置以 ","分隔,然后可以导入csv格式的文件
  • .import yourcsvfile.csv tablename 导入csv文件到表tablename中。一次好像只能导入一张表。

在tableview中打开一个数据库的表

.pro文件中添加:

QT       += widgets
QT       += sql

头文件:

#include 
#include 
#include 
#include 

利用qryModel打开数据库执行SQL命令,并将select结果展示在tableview中。

QSqlDatabase  DB; //数据库
QSqlQueryModel  *qryModel; //数据模型
//利用getOpenFileName获取 数据库文件的绝对路径
QString aFile=QFileDialog::getOpenFileName(this,"选择数据库文件","","SQL Lite数据库(*.db *.db3)");
if (aFile.isEmpty())
       return;
//打开数据库
DB=QSqlDatabase::addDatabase("QSQLITE"); //添加 SQL LITE数据库驱动
DB.setDatabaseName(aFile); //设置数据库名称
if (!DB.open())   //打开数据库
{
    QMessageBox::warning(this, "错误", "打开数据库失败",QMessageBox::Ok,QMessageBox::NoButton);
    return;
}else{
    qDebug() << "打开数据库";
}

qryModel=new QSqlQueryModel(ui->tableView);  //可以执行任何SQL命令
qryModel->setQuery(QString("SELECT stockNum, stockTime, stockStart, stockEnd, stockid FROM dailystock where dailystock.stockid='000001'"));
if (qryModel->lastError().isValid())
{
    QMessageBox::critical(this, "错误", "数据表查询错误,错误信息\n"+qryModel->lastError().text(),QMessageBox::Ok,QMessageBox::NoButton);
    return;
}else{
    qDebug() <<"qrymodel success";
}	 

ui->tableView->setModel(qryModel);   //设置表视图的模型

你可能感兴趣的:(QT)