多线程
QThread类
重写run()方法 需继承自QThread类(自定义类)
自定义对象 ->start();//启动线程
线程的关闭方法需自己重新定义
###### 注多线程并发执行的时候 ,共享数据的准确性是不确定的
QMutex 互斥锁 可定义全局对象
QMutex .lock();//加锁
------操作共享的数据--------
QMutex.unlock();//解锁
多语言 国际化Qt
tr(" xxxx ");用来获取需要国际化翻译的文本(64位MinGW)
resize(int,int);//设置窗体的大小
1. 项目中所需要翻译的字符串都设置为tr(" xxxx ");
2. lupdate.exe 编译生成xxxx.ts文件
3. linguist.exe 进行翻译
4. lrelease.exe 生成xxx.qm文件
5. 使用
2.1 工程文件中添加 TRANSLATIONS = lang_en.ts //名字随意 在项目中生成ts文件多个的话用 \隔开可实现多语言 如 TRANSLATIONS = lang_en.ts \lang_zh.cs
工具-外部-qt语言家-更新翻译(lupdate)。生成xxx.ts文件
或者打开lupdate.exe复制所在文件侠(bin) 打开cmd管理员运行输入目录路径 在输入lupdate空格项目路径\项目工程文件名称.por
(如果没有编译器就添加环境变量 找到g++的路径(bin)-我的电脑-属性-系统-高级-添加环境变量-系统环境变量中path-编辑-新建-g++的路径(bin)-确定) ;重启cmd命令行就OK了
3.1找到linguist.exe(和lupdate.exe都在qt目录下),打开这个程序 打开ts文件 会捕捉到需要翻译的原文 在下面两个输入框输入要翻译之后的文本 再点击绿色的勾勾 就翻译完一条了以此类推 保存
文件菜单点击发布生成 xxx.qm文件
5.1主函数(main.cpp)中QApplication a(argc,argv);后面
QTramslator 翻译类
QTramslator * tramslator=new QTramslator ;
tramslator->load("xxx.qm");//加载
a.installTranslator(tramslator);//应用程序设置翻译器
a.removeTranslator(tramslator);//应用程序移除翻译器//QApp是全局的的实例加头文件<QApplication>就可用
delete tramslator;//释放这个翻译器
tramslator=nullptr;//置空
注 xxx.qm文件须在运行路径
运行
tr("xxxx","xxxx");可以为这个字符串设置ID进行翻译 前面是id后面是语言