int QProcess::execute(const QString &program, const QStringList &arguments);
QObject *parent;
...
QString program = "./path/to/Qt/examples/widgets/analogclock";
QStringList arguments;
arguments << "-style" << "fusion";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);
#ifndef WIDGET_H
#define WIDGET_H
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget {
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this);
}
Widget::~Widget() {
delete ui;
}
void Widget::on_pushButton_clicked() {
QString exe_path = "D:/download/qt_test/build-AAA-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug/debug/AAA.exe";
QStringList argList;
argList.append("yse");
argList.append("start");
QProcess p;
p.execute(exe_path, argList);
}
#include "widget.h"
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
// AAA.exe -yes -start
if(argc != 3) {
return -1;
} else {
QString str1 = QString(argv[1]);
QString str2 = QString(argv[2]);
if(!str1.compare("yes") && !str2.compare("start")) {
Widget w;
w.show();
return a.exec();
}
}
return -2;
}
// 头文件路径
INCLUDEPATH += ./vlc-3.0.8-win32/sdk/include
// lib 名字,有多个 lib 就写多行 LIBS +=
LIBS += $$PWD/vlc-3.0.8-win32/sdk/lib/libvlc.lib
LIBS += $$PWD/vlc-3.0.8-win32/sdk/lib/libvlccore.lib
打包应用程序到其他电脑运行,需要提取运行时所需依赖库,以某视频播放器为例
首先将 D:\Qt5\5.15.2\msvc2019\bin 添加进电脑系统环境变量 path 中
在需要打包的视频播放器 .exe 同级目录下运行 windeployqt MediaPlayer.exe
生成的依赖库如下图所示
运行 windeployqt 可能遇到如下警告
Warning:Cannot find Visual Studio installation direction, VCINSTALLDIR is not set
解决办法:新建环境变量
VCINSTALLDIR
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
ui->label_userName->setText(tr("username"));
ui->label_pwd->setText(tr("pwd"));
ui->btnLogin->setText(tr("login"));
.pro 文件添加 ts 文件
TRANSLATIONS = testlang.ts
在开始菜单找到 Qt 控制台窗口,cd 到项目目录,执行如下命令生成 ts 文件
lupdate testlang.pro
全部翻译结束后,保存,点击菜单:文件——发布
最后需要在项目 debug 目录下新建 lang 文件夹,并把上面生成的 qm 文件拷贝进去
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this);
ui->label_username->setText(tr("username"));
ui->label_pwd->setText(tr("pwd"));
ui->btnLogin->setText(tr("btnlogin"));
}
Widget::~Widget() {
delete ui;
}
main.cpp
#include "widget.h"
#include
#include
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QTranslator *trans = new QTranslator();
// 注意路径的反斜线,翻译文件加载错误将不会翻译
QString qm_path = a.applicationDirPath() + "/lang/testlang.qm";
trans->load(qm_path);
a.installTranslator(trans);
Widget w;
w.show();
return a.exec();
}