目录
2.2设置QDateTimeEdit的时间格式和设置为当前时间
1.Qt关于数据库
1.1Qt链接数据库
需要注意的问题:
- 在链接MySQL的时候,首先要确保MySQL已经安装成功
- 在目录Qt安装目录中存放数据库驱动的地方,确保里面的qsqlmysql.dll驱动存在并且与当前的Qt安装版本一致或者高于,不然则会不兼容
- 在版本组件中的lib文件夹中,检查是否有libmysql.dll和libmysql.lib两个文件,这两个问题至关重要,我的文件路径是:D:\Qt6\6.2.4\msvc2019_64\lib
解决方法:
- 如果pro文件没有编译不了对于的MySQL驱动,且MySQL的驱动版本低于Qt安装版本,则可以试试重装Qt为和MySQL驱动一样的版本!
Qt链接MySQL的代码编写:
1.首先在pro文件中要加入sql,例如:QT += core gui sql
2.然后要包含头文件 <QSqlDatabase>、<QSqlQuery>
//Qt链接MySQL的代码
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setUserName("root"); //输入链接数据库的用户名
db.setPassword("123456"); //输入链接数据库的密码
db.setDatabaseName("Money"); //输入要链接的数据库名
if (!db.open()) //调用open打开数据库
{
QMessageBox::warning(nullptr, "警告", "无法连接数据库!");
}
else
{
qInfo("数据库链接成功!");
}
QSqlQuery query(db);
//创建消费记录表
query.exec("create table money_table (ID INT,消费时间 varchar(50),摘要 varchar(1024),类型 varchar(50),金额 DOUBLE)");
1.2将数据库的模型显示在控件中
方法 一:
1.将Qt控件中的QTableView控件拖拽到ui界面中
2.链接数据库,确保数据库链接成功
3.包含头文件 <QSqlQueryModel>
4.将数据库模型显示在tableview上
扩展:
5.使用setColumnWidth函数可以修改控件列字段的列宽
6.重新读取数据库模型再设置,可起到刷新表的效果
//将数据库模型显示在tableView上
model = new QSqlQueryModel(this);
model->setQuery("select * from money_table",*db);
ui->tableView->setModel(model);
//设置tableView的显示列宽
int tableview_width[5] = {100,150,200,100,100};
for(int i = 0;i < 5;i++)
{
ui->tableView->setColumnWidth(i,tableview_width[i]);
}
//可刷新表
model->setQuery("select * from money_table",*db);
ui->tableView->setModel(model);
2.Qt关于控件
2.1用正则表达式设置输入框只能输入正浮点数
基础教学:
1.创建一个输入框或者在Qt控件中将QLine拖拽到ui界面中
2.包含头文件<QRegularExpressionValidator>
3.创建正则表达式语句
4.使用setValidator函数设置输入框的输入规范为正则表达式语句
//创建正则表达式语句
QRegularExpression regExp("^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
//使用setValidator函数设置输入框的输入规范为正则表达式语句
ui->lineEdit->setValidator(new QRegularExpressionValidator(regExp, this));
2.2设置QDateTimeEdit的时间格式和设置为当前时间
基础教学:
1.创建一个时间控件或者在Qt控件中将QDateTimeEdit拖拽到ui界面中
2.使用setDisplayFormat设置当前的时间格式
3.使用setDateTime设置当前时间
扩展:
4.使用dateTime函数,可以返回QDateTime对象可接受的时间格式
//设置时间格式为 年/月/日 时:分:秒
ui->dateTimeEdit->setDisplayFormat("yyyy/MM/dd hh:mm:ss");
//设置时间控件显示当前系统时间
ui->dateTimeEdit->setDateTime(QDateTime::currentDateTime());
//获取时间控件的时间
QDateTime start_time = ui->dateTimeEdit->dateTime();
3.Qt关于打包
3.1 Qt程序打包成可执行程序
基础教学:
QT项目打包成可执行程序exe(简易版)_qt打包成可执行程序_Xiao_fan98的博客-优快云博客
1.将原来的debug模式换位release模式进行编译
2.新建一个文件夹将release模式编译生成的exe文件复制到新的文件夹中
3.打开qt对应版本的终端,进入到目标文件夹中,输入命令windeployqt自动配置库文件
''DC_7为项目名称,根据自己项目名称自行更改''
windeployqt DC_7.exe
3.2 Qt程序修改可执行文件图标
基础教学:
还不知道怎么修改QT可执行文件图标?过来吧你!_张子又的博客-优快云博客
1.将图片通过工具转换成ICO文件格式
2.将图片放入到和pro文件同一个路径下
3.在pro文件中添加一行代码
RC_ICONS = xxx.ico //xxx为文件名可以自己设置
4.重新运行即可修改成功
3.3 Qt可执行文件无法链接MySQL问题
基础教学: