OK,Cancel按钮为什么没变成中文

weixin_38056302 2019-09-19 02:46:17
写了一个简单的登录界面,按网上说的把qt_zh_CN.ts用Linguist另外发布为qt_zh_CN.qm,把qm文件加入project运行,结果登录窗口的OK.Cancel按钮还是英文!Linguist打开qt_zh_CN.ts文件发现已经翻译好了,所以就没有修改直接用了。环境是windows X86版本,大家觉得可能原因是什么呢?#include <QtGui/QApplication>#include <QTranslator>#include <QTextCodec>#include "loginFrm.h"int main(int argc, char *argv[]){    QApplication a(argc, argv);    QTranslator translator;    translator.load( "qt_zh_CN.qm", "." );    a.installTranslator( &translator );    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));    LoginFrm w;    w.show();    return a.exec();}
...全文
89 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
第一节板书: 1、MingW就是一个C/C++的编译器。 编译器和编辑器:编译器其实就是把源代码编译成目标代码的程序;Tc就是一个编辑器:能在里边敲代码,高亮显示,自动提示。 2、 C-Free里边可以运行、也可以调试。设置断点很简单,就是在要设置断点的代码行前边点击一下鼠标,有了一个红色小点就说明设置好了断点。 3、控制台程序的入口是main,Win32程序的入口是WinMain 4、以前用TuborC的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些问题的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。 5、Windows程序的骨干代码: #include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { return 0 ; } 6、 向Windows的世界问好 (1)MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK); 第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。 MB_OK就是表示有一个OK按钮【确定】) TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T("问好"),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。 换个样子: MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL); 可从设置希望在对话框中显示的按钮: #define MB_OK 0x00000000L #define MB_OKCANCEL 0x00000001L #define MB_ABORTRETRYIGNORE 0x00000002L #define MB_YESNOCANCEL 0x00000003L #define MB_YESNO 0x00000004L #define MB_RETRYCANCEL 0x00000005L 也可以设置对话框中显示的图标: #define MB_ICONHAND 0x00000010L #define MB_ICONQUESTION 0x00000020L #define MB_ICONEXCLAMATION 0x00000030L #define MB_ICONASTERISK 0x00000040L 比如:MessageBox(NULL, TEXT("世界你好") ,TEXT("你好"), MB_ICONQUESTION); (2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢? MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL| MB_ICONQUESTION); MessageBox(NULL, TEXT("世界你好"), TEXT("你好"), MB_ABORTRETRYIGNORE | define MB_ICONEXCLAMATION); (3)思考: 到这一步如果你只是在背诵“第一组和第二组中间放一个竖线就可以实现两种效果的组合形式”,那么你未来只会成为一个代码工人。我们要思考一下其背后的原理。 首先说“|”是什么意思?“|”是位运算里的“或”运算,只有对应的两个二进位有一位为1时,结果位才为1 ,否则为0。MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHAND、MB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHAND、MB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。 拿到1000010以后怎么判断是不是和0000010或运算来的? 1000010 0000010 与& ====== 0000010 1000011 0000010 & ======= 000

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧