您的位置:首页 > 编程语言 > Qt开发

个人学习QT问题收集整理稿

2013-10-10 00:12 411 查看
一、QT中文乱码

目前试了两种方法

一:QStringLiteral

C/C++ code
二:

C/C++ code
三:现在主要用第三种

QT5.1.1中文乱码肯定是编码格式不是utf-8的。如果是UTF-8的直接用就可以显示中文了。连tr()那些都不用加的。

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

这个函数已经移除了在QT5.1中,所以tr()已经没用了。如果乱码了打开源代码的时候肯定会让你选择一种编码格式。一般选择GBK然后代码中就可以显示中文了不再乱码了。但编译出来后软件界面中文肯定还是乱码的。这时选择  编辑--->选择编码--->UTF-8        然后选择按编码保存。源码全部保存成UTF-8的编译执行后软件就不会乱码了。把老版本的那些tr()处理中文乱码的都去掉了可以。

四:在有中文的.cpp 或者.h文件中加入如下代码

//源代码编码必须是: UTF-8(BOM)
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif


二、QT布局

在水平或垂直布局中,如何设置各个控件所占的比例?

选中该LayOut对象,在LayOut属性中,设置layoutStretch。会发现在该layout中有几个控件,这个属性中就有几个数字,默认为0.0.0。改变这些数字比例就可以设置各个控件的填充比例了。

三、项目路径中一定不要出现中文

无论是创建的还是添加的项目路径中都不要出现中文路径,否则编译时无法通过的

四、QT提供了一种默认信号-槽对应关系

QT提供了一种默认信号-槽对应关系:on_控件名称_信号函数名称(参数列表).当定义了这样的函数后,QT会将函数自动与界面控件的信号相关联,当控件触发了相关事件后这个函数将会被触发.

另外一种方式是直接使用QObject::connect函数来关联信号和槽.语法为:

connect(发出信号的对象指针,SIGNAL(信号函数原型), 响应信号的对象, SLOT(槽函数原型));

五、QT5修改自动补全快捷键



QT禁用最大化按钮 和 禁止调节窗口大小

setWindowFlags(windowFlags()& ~Qt::WindowMaximizeButtonHint);
setFixedSize(this->width(), this->height());


修改生成文件的目录为工程的当前目录下。默认生成在工程目录相同的目录不便于管理。



如果只生成debug和release文件则用下设置

../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}


修改为

./%{CurrentBuild:Name}


如果是以前的项目则删除XXXXXXX.pro.user文件,重新用QtCreate打开。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: