书店上买的C++程序设计,里面有一段代码用VS2017和QT4.7结果运行不对,请问要怎么改

书店上买的C++程序设计,里面有一段代码用VS2017和QT4.7结果运行不对,请问要怎么改,第1张

这是在String头文件重载=运算符的,不要写string::operator=了,直接写成string & operator=(string& s)就行了,如果把头文件和源文件分开,同时不在头文件里写函数体,此时应该用类作用域符

QtLinguist的使用方式

lupdate可以把h,cpp,ui中需要翻译的字符串抽出来形成ts文件,然后用linguist翻译,用lerealse生成qm。

*** 作步骤如下:

1修改pro,在其中添加=XXXts或是=XXXts

如果要生成多个可以用:

=lang_ents

lang_zhts

lang_lats

2执行lupdatepro,生成XXXts

3使用linguist打开XXXts,进行翻译,翻译结束后,保存成为qm格式的。File-

或者是翻译结束后,使用命令,lreleaseXXXts,生成qm文件。

4在程序中加入。

QTranslatortranslator;

translatorload("browser");

app(&translator);

其中load的是XXXqm中的不包含后缀名的文件名(即XXX)。

注:我之前编写时在Maincpp中加入的东东:

a(argc,argv);

QTranslatortranslator;

translatorload("admain_zh");

asetFont(QFont("wenquanyi"));//设置字体库

a(&translator);

如果你能编译通过,那说明你在头文件中一定有这样的定义:

QLabel test;

否则test_button_clicked()中会报错, test不存在

而你在构造函数中又这样定义:

QLabel test = new QLabel();

其实质是新建了一个QLable,并不是头文件中声明的test,头文件中的 test并没有初始化,还是空值,所以在调用槽函数test_button_clicked()因为test为空,导致程序崩溃

解决办法:

把构造函数中的

QLabel test = new QLabel();

改为:

test = new QLabel();

这也应该是你的本意

以上就是关于书店上买的C++程序设计,里面有一段代码用VS2017和QT4.7结果运行不对,请问要怎么改全部的内容,包括:书店上买的C++程序设计,里面有一段代码用VS2017和QT4.7结果运行不对,请问要怎么改、Qt程序汉化的问题_qt汉化方法、QT关于在槽函数中修改组件属性导致程序崩溃求解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9696963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存