QT 常用总结三

弹出一个QFileDialog 设置输出文件路径和文件名

方法 getSaveFilename()

代码:

	QString filter = "文本文件(*.txt);;任意文件(*.*)";
	QString curpath = QDir::currentPath();
	QString aFileName = QFileDialog::getSaveFileName(this,"导出股票代码", curpath, filter);
  • aFileName是文件名的绝对路径。
创建一个txt文件并向其中写入数据
创建txt文件:
  • 先创建一个QFile类;
  • 利用上面代码获取的文件名的绝对路径,设置文件对象的路径;
  • 使用open()方法打开文件
  • 使用QTextStream txt数据流写入数据。
  • 写入完成后使用close()关闭文件。
TXT文件中写入换行

注意:在使用open打开文件时候需要添加QIODevice::Text标识,用于在windows或linux环境下的换行符转换。windows环境下换行符为:/r/n,而我们编程过程中习惯用 /n 用于换行。

	QFile saveFile;
    saveFile.setFileName(aFileName);
    if(saveFile.open(QIODevice::WriteOnly|QIODevice::Text)){
        QTextStream in(&saveFile);
        in << "\n";
        in << "123";
        in << "132";
        saveFile.close();
    }

QT SQL命令在线程中执行

1 在主线程中连接数据库,在线程中执行耗时较长的sql命令
  • 在主线程中建立连接
if(DB.isOpen()){
        dingVoice();
        QMessageBox::information(this, "完成", "已成功连接数据库\n",QMessageBox::Ok,QMessageBox::NoButton);
    }else{
        DB=QSqlDatabase::addDatabase("QMYSQL"); //添加数据库驱动
        QSettings settings("DBoption.ini",QSettings::IniFormat);
        qDebug()<< settings.value("dialogfordb/IP").toString()<<settings.value("dialogfordb/USER").toString()\
                <<settings.value("dialogfordb/PASSWORD").toString();
        DB.setHostName(settings.value("dialogfordb/IP").toString());
        DB.setPort(settings.value("dialogfordb/PORT").toInt());
        DB.setDatabaseName(settings.value("dialogfordb/DBNAME").toString());
        DB.setUserName(settings.value("dialogfordb/USER").toString());
        DB.setPassword(settings.value("dialogfordb/PASSWORD").toString());
        if(!DB.open()){
            QMessageBox::warning(this, "错误", "打开数据库失败"+DB.lastError().text()+"\n请进行数据库配置!",QMessageBox::Ok,QMessageBox::NoButton);
            DB.close();
            return;
        }
  • 创建sqlThread类,并创建传入QSqlDatabase 的方法
//传入数据库连接
void sqlThread::setDB(QSqlDatabase &DB)
{
	//创建QSqlquery类,一定需要传入DB,否则会报 Driver not load错误
    query = new QSqlQuery(DB);
}
void sqlThread::run()
{
	//子线程执行以下程序
    query->prepare("this is your sql command");
    query->exec();
    if(query->lastError().type() != QSqlError::NoError){
        qDebug() << "error";
    }
    quit();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值