资源简介
基于QT的音频播放器修改自qt5-doc
代码片段和文件信息
#include “connection.h“
#include
#include
#include
#include
Connection::Connection(Qobject *parent) :
Qobject(parent)
{
db = QSqlDatabase::addDatabase(“QSQLITE“);
db.setDatabaseName(“media.db“);
if(db.open())
createTables();
else
errMsg = “Can‘t open db“;
}
void Connection::createTables()
{
QSqlQuery query(db);
if(!query.exec(“select * from musicgroup;“))
{
qDebug()<<“Do not have db“;
assert(query.exec(“create table musicgroup(id integer primary keygroupname text);“));
assert(query.exec(“create table music(id integer primary keymusicname text albumname textalbumpicpath textcomposer textadddate textsinger texturl text NOT NULL uniquelrc text);“));
assert(query.exec(“create table playlist(groupid integermusicid integerforeign key(groupid) references musicgroup(id)foreign key(musicid) references music(id))“));
}
else
{
qDebug()<<“Aready have db“;
}
}
bool Connection::insertMusic(QMap map)
{
QSqlQuery query(db);
query.exec(“select max(id) from music“);
if(query.next())
{
int id = query.value(“max(id)“).toInt();id++;qDebug()< map[“id“]==““?id=id:id=map[“id“].toInt();
QDateTime dt;
QTime time;
QDate date;
dt.setTime(time.currentTime());
dt.setDate(date.currentDate());
QString sql =“insert into music(idmusicnamealbumnamealbumpicpathcomposeradddatesingerurllrc) values(‘“+QString::number(id10)+“‘‘“+map[“musicname“]+“‘‘“+map[“albumname“]+“‘‘“+map[“albumpicpath“]+“‘‘“+map[“composer“]+“‘‘“+dt.toString(“yyyy:MM:dd:hh:mm:ss“)+“‘‘“+map[“singer“]+“‘‘“+map[“url“]+“‘‘“+map[“lrc“]+“‘)“;
qDebug()<
QSqlQuery insert(db);
if(insert.exec(sql))
return true;
else
throw QString(“Please don‘t add the same music!“);
}
throw QString (“FATAL DB BUG!“);
return false;
}
QStringList Connection::getKeys(QString key)
{
QStringList list;
QSqlQuery query(db);
if(key == “groupname“)
{
QString str = “SELECT distinct “+key+“ FROM musicgroup“;
query.exec(str);
while(query.next())
{
list.append(query.value(0).toString());
}
return list;
}
else if(key == “adddate“)
{
QString str = “SELECT distinct substr(“+key+“110) FROM music“;
query.exec(str);
while(query.next())
{
list.append(query.value(0).toString());
}
return list;
}
else
{
QString str = “SELECT distinct “+key+“ FROM music“;
query.exec(str);
while(query.next())
{
list.append(query.value(0).toString());
}
return list;
}
}
QList > Connection::search(QString infQString key)
{
QSqlQuery query;
QString str = (key == “musicgroup“)?“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-01-07 16:10 pla
文件 5458 2014-01-06 08:28 pla
文件 612 2014-01-06 08:27 pla
文件 487 2014-01-05 10:21 pla
文件 5757 2014-01-06 22:37 pla
文件 1115 2014-01-06 22:00 pla
文件 10296 2014-01-06 22:37 pla
文件 1628 2014-01-06 08:18 pla
文件 596 2014-01-06 18:11 pla
文件 34295 2014-01-07 16:10 pla
文件 4389 2014-01-05 22:02 pla
文件 1166 2013-12-29 15:35 pla
文件 3286 2013-12-29 16:36 pla
文件 1155 2013-12-29 15:36 pla
文件 345 2014-01-05 10:55 pla
文件 201 2014-01-05 10:55 pla
- 上一篇:Unity 3D虚拟现实场景作品
- 下一篇:GPS经纬度转换大地坐标
相关资源
- Qt之实现录音播放及rawpcm转wav格式
- QToolButton 的扩展、多样化
- QT5.12.2/QT5.12.5 QWebEngineView Ubuntu下编译
- qt串口通信,实现发送和接收
- QT窗口界面模拟生产者消费者
- rtapi_w32.dll 库文件
- QT数字时钟,简单程序,适合练习
- Qt魔方还原lesson5-opencv识别颜色
- Qt魔方还原lesson4-魔方完全还原
- Qt 多线程使用 QTcpSocket及QTimer
- QT开发的视频采集并定时上传到服务器
- 基于LabVIEW的音乐播放器226742
- tiny4412上实现QT控制LED
- 简单的Shell编辑器Qt5
- 用qt写的学生成绩管理系统
- 用qt写的签到程序
- QT_GZIP整合后的源码
- QT5 QSerialPort 串口收发
- Qt拼图游戏源码
- QT之扫雷游戏
- QT的QTreeWidget有checkbox时轻松选中
- 制作含qt的图形文件系统完整过程
- DS18B20测温及QT界面实现
- 基于QT4的列车时刻表查询系统
- QT编写的串口设备调试工具终极版
- Qt编写守护进程
- qt写的一个动感界面
- qt5串口程序
- QT获取天气程序
- myElectronicDictionary.rar
评论
共有 条评论