1. exe 文件的发布(环境)
- 拷贝 exe 文件到一个空文件夹;
- 打开 Qt 命令行
- 输入: cd /d + exe 所在目录(绝对路径,不包含文件名) + 回车
- 输入: windeployqt + exe文件名(含扩展名)
参考链接 - 上述操作仅能够添加Qt的环境,不会添加其他的库文件,例如 OpenCV、自己编写的库
2. exe 图标
- UI 界面左上角增加图标:
this->setWindowIcon(QIcon(":/Image/Image/Logo.png"));
- exe 文件增加图标:
- 右键 Add New > General > Empty File > 添加一个.rc后缀的文件
- 在这个.rc文件中写一句:IDI_ICON1 ICON DISCARDABLE “Logo.ico”
- 制作一个.ico图标文件,放在.pro同一目录下,命名为 2 中的 “Logo.ico”
- 在.pro 文件中写一句: RC_FILE+= Logo.rc
参考链接
3. 工程拷贝删除 user 文件
拿到新的工程文件的时候,要删除 .user文件(包含了工程路径等信息(绝对路径))
4. 中文显示
- 如下设置(设置完了输入几个汉字)
- 以下代码(推荐!)
#pragma execution_character_set("utf-8")
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setFont(QFont("Microsoft Yahei", 9));
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif
frmIPAddress w;
w.show();
return a.exec();
}
5. 内存回收
满足两个条件的 new 对象会自动回收内存
- 直接指定父对象
- 对象类型为直接或间接继承自 QObject
6. 方箱模型
- 空白(margin):最外侧的透明区域(通常不管)
- 边框(border):实际的内容区域(border width 指的就是边框和实际内容之间的宽度)
- 填充(padding):填充 边框 与 内容之间的区域
- 内容(content):内容在边框之间还有一定的距离
6. qmake 语法(.pro文件配置语法)
6.1 针对跨平台的配置
unix {
target.path = /usr/lib
}
win32{
target.path = /usr/lib
}
6.2 手动配置工程
##################### 设置输出路径、文件名 ######################
CONFIG(debug, debug|release){
DESTDIR =$$PWD/../../../binOpencv # 输出目录
TARGET = xxxxDLLd # 输出文件名
# 如果要生产的dll和lib文件分开,则添加下面这个配置(仅在windows下有效!!!)
# DLLDESTDIR = $$PWD/../../../binOpencv
}
else{
DESTDIR =$$PWD/../../../binOpencv
TARGET = xxxxDLL
}
##################### 添加动态库 ##################
## $$PWD 表示 .pro 文件所在目录
## 头文件路径
INCLUDEPATH += $$PWD/xxx/xxx1
INCLUDEPATH += $$PWD/xxx/xxx2
## lib文件路径
LIBS += -L$$PWD/libtorch/lib
## lib文件名
LIBS += -ltorch
LIBS += -lonnxifi_loader
LIBS += -lonnxifi_dummy
message($$PWD) # 相当于 qDebug()<<$$PWD