QT随性笔记
1:QT中new出来的如果是子对象、不需要delete 父对象销毁后会自动释放。2:使用QStringLiteral()宏 即可解决中文乱码问题。
3:使用mysql数据库的时候 会提示未加载驱动
★原因是QT并没有包含mysql驱动模块 需要编译mysql驱动模块 搞不好会出现 因为控制不当、鹅提取放弃呢^_^~~!
①:安装QT相对应版本的源码 默认安装QT时 有Src选项 请打√
②:用QT打开xx:\QT\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql.pro
③:修改mysql.pro ->
#QMAKE_USE += mysql
#修改你对应的mysql库目录
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += -L"C:/Program Files/MySQL/MySQL Server 8.0/lib" -llibmysql#-L 的意思使忽略空格产生的错误
DESTDIR = ../mysql/lib/
④:编译出qsqlmysql.dll、qsqlmysqld.dll 目录 xx:\QT\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql\lib
⑤:将其拷贝到xx:\QT\5.12.9\msvc2017_64\plugins\sqldrivers #我用的是vs的编译器 如果是GCC要选择相应的目录哦
⑥:xx:\MySQL\MySQL Server 8.0\lib\libmysql.dll 拷贝到 xx:\QT\5.12.9\msvc2017_64\bin
~别忘了位数要match哦 64-64 32-32 you now ( ̄▽ ̄)"~
4:如果提示xxx已在.obj中定义 清理项目 重新构建即可。
5:由于所有的控件都继承于QWidget或QWidget的派生类,如果要设计自己的控件,可以继承于QWidget或QWidget的派生类。
6:自定义槽函数添加定义的快捷键 ->单击选中槽函数声明 按Alt + Enter
7:自定义槽函数三种方式使用方式
①:使用connect
public slots:
void xxx(); #名字任意取 任意呵呵...
connect(信号发送者(地球人), 信号(呼叫奥特曼), 信号接收者(奥特曼), 槽函数(打怪兽));
void xx对象::槽函数()
{
QMessageBox::information(NULL, QStringLiteral("a easy example"), QStringLiteral("哇咔咔 奥特曼正在打小怪兽..."));
}
②:不使用connect #ui设计师自动生成就是这种方式呢 没错吧^_^
public slots:
void xx_自己取得控件名_xx(); # xx要自己去查啦 毕竟是QT定义好的函数名 还有自己取得控件名不要写错了哦
void xx对象::槽函数()
{
QMessageBox::information(NULL, QStringLiteral("a easy example"), QStringLiteral("哇咔咔 奥特曼正在打小怪兽..."));
}
③:c++11 新特性 lamde表达式
connect(信号发送者, 信号,
[=]()
{
QMessageBox::information(NULL, QStringLiteral("a easy example"), QStringLiteral("哇咔咔 奥特曼正在打小怪兽..."));
}
); 辛苦了!感谢!
页:
[1]