原地址:http://blog.csdn.net/ykm0722/article/details/6947250

转载:

分享在比赛中写代码时,发现的几个对写程序很有用的小段代码,虽小但是在我的软件中帮了我很大忙。这些代码可以在程序和软件开发中直接使用,会为你的程序开发介绍很多麻烦。仅是个人之见,如有不符之处,请拍砖。
第一段:主要的功能是解决中文显示问题,这三段有时一段即可,有时需要三段都得写。为了省事,我一般是三段一起写,我们队在软件开发中把这三段放在了main函数中。
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));实例:
int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QApplication app(argc, argv);
setup setupwindow;
setupwindow.show();
return app.exec();
}
这样在软件开发过程,和程序编写过程中几乎所有的乱码问题全部可以不用担心了,也不必在花心思去专门注意了(我在软件开发中百试百灵,只是个人经验)。
第二段:主要用来解决图片、文件等默认命名重复问题。我们队在开发中考虑用时间作为文件的默认名字,某一时刻的时间是绝对不会重复的,所以命名的文件也绝对不会重复,也绝不会发生覆盖导致文件、图片问题
实例应用:
QString str = QTime().currentTime().toString();
picname= QString(tr("IMG%1%2%3"))
.arg(QDate().currentDate().year()%100)
.arg(QDate().currentDate().month())
.arg(QDate().currentDate().day(),2)
+str.mid(0,2)+str.mid(3,2)+str.mid(6,2)+".jpg";
fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"/home/meego/Pictures/"+picname,
tr("Images (*.jpg *.png *.xpm *.jpg)"));
第三段:为软件界面设计背景图片
代码:
QPalette palette; palette.setBrush(QPalette::Background,QBrush(QPixmap(":/img/butterflynew.jpg")));
this->setPalette(palette);
只需对":/img/butterflynew.jpg" 进行简单的修改和替换即可使你的软件或程序界面变成你所想要的效果。
还有就是在软件设计时我们采用两种方式,一种是纯粹代码完成,另一种是控件的拖放加适当的代码添加。在这个过程中,我们发现在代码编写和添加中,纯粹的控件拖放可以帮我们完成很多工作。具体实现方法如下:
新建一个QT GUI Application 建完后会默认的程序组成如下图所示:
(由于网速等原因图片一直加不进来,创建时只要一直点默认的按钮即可)
我们可以在UI文件中进行控件的拖放和组装。然后点击编译,可以不用运行,但是若要看效果可以运行下。回到mainwindow.cpp看头文件会看到#include "ui_mainwindow.h"将光标放到#include "ui_mainwindow.h" 中间,然后点击F2,程序界面会跳转到ui_mainwindow.h中,在这里你可以看到你所拖动的控件如何用纯的代码去实现。这一方法,在对控件的位置定义中节省了很多时间。
以上是我在学习QT中的一点小收获小总结,有可能有失误的地方,请拍砖!

QT学习小技巧的更多相关文章

  1. Python学习小技巧之列表项的排序

    Python学习小技巧之列表项的排序 本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 典型代码1:     data_list = [6, 9, 1, ...

  2. Qt开发之Hello Qt及学习小技巧

    创建第一个Qt程序的简单流程 如果安装了andriod或ios的版本也会显示出来,这里只显示了桌面端的 一个项目文件代码结构如下: 如下图可直接编辑label里的文字内容: 运行结果:(快捷键ctrl ...

  3. QT学习小demo之LightMD(MarkDown编辑器)

    很早之前就有了写一个类似Windows记事本的想法,加上最近也刚好在学编译原理,所以就想把两者结合起来,于是就打算结合MarkDown,开发一款MarkDown编辑器. 不过由于我之前一直使用的是Ja ...

  4. Qt开发经验小技巧81-90

    Qt中的QColor对颜色封装的很完美,支持各种转换,比如rgb.hsb.cmy.hsl,对应的是toRgb.toHsv.toCmyk.toHsl,还支持透明度设置,颜色值还能转成16进制格式显示. ...

  5. Qt开发经验小技巧71-80

    在我们使用QList.QStringList.QByteArray等链表或者数组的过程中,如果只需要取值,而不是赋值,强烈建议使用 at() 取值而不是 [] 操作符,在官方书籍<C++ GUI ...

  6. Qt开发经验小技巧61-70

    很多人问Qt嵌入式平台用哪个好,这里统一回答(当前时间节点2018年):imx6+335x比较稳定,性能高就用RK3288 RK3399,便宜的话就用全志H3,玩一玩可以用树莓派香橙派. 对于大段的注 ...

  7. Qt开发经验小技巧41-50

    如果使用sqlite数据库不想产生数据库文件,可以创建内存数据库. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); ...

  8. Qt实用小技巧(转)

    原博网址:http://www.cnblogs.com/feiyangqingyun/archive/2010/12/06/1898143.html 1.如果在窗体关闭前自行判断是否可关闭答:重新实现 ...

  9. Qt开发经验小技巧51-60

    在某些http post数据的时候,如果采用的是&字符串连接的数据发送,中文解析乱码的话,需要将中文进行URL转码. QString content = "测试中文"; Q ...

随机推荐

  1. CUDA samples 第三章 sample reference 概况

    示例代码分为下列几类: 1.   Simple Reference 基础CUDA示例,适用于初学者, 反应了运用CUDA和CUDA runtime APIs的一些基本概念. 2.   Utilitie ...

  2. Android 开机动画源码分析

    Android系统在启动SystemServer进程时,通过两个阶段来启动系统所有服务,在第一阶段启动本地服务,如SurfaceFlinger,SensorService等,在第二阶段则启动一系列的J ...

  3. dreamvc框架(三),dispartcher做了些什么

    这一篇我会介绍一些dreamvc的核心类Dispatcher都做了些什么,首先我们先来看一看init方法,这是在DispatcherServlet和DispatcherFilter里面都会调用到的一个 ...

  4. ThinkPHP - 模板引擎

    1.导入css/js文件 - CSS文件 <!--<link rel="stylesheet" type="text/css" href=" ...

  5. Android:OptionMenu

    MainActivity: package com.example.optionmenu; import android.content.Intent; import android.os.Bundl ...

  6. vsftpd安装

    原文连接:史上最详细的vsftpd配置文件讲解: http://www.9170.org/post-322.html 参考博文:centos启用ftp功能:http://os.51cto.com/ar ...

  7. POJ 2479 不相交最大子段和

    题目意思还是很好理解的,在一个数列中,找出不相交的两个子串使得其和最大. 解题思路: 对于每个i来说,求出[0 ~ i - 1] 的最大子段和以及[i ~ n - 1]的最大子段和,在加起来,求最大的 ...

  8. MessageBox不能前置显示的问题

    在MFC的开发中,经常会遇到一些莫名奇妙的问题,可能是经验不足的原因吧. 进入正题....在手头的项目中,用MFC做的界面应用.在某一天突然发现程序界面不能进行响应,经过反复的调试后发现:Messag ...

  9. ThinkPHP 3.1.2 URL<1>

    # # ThinkPHP 3.1.2 URL 本节课大纲: 一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 'URL_CASE_INSENSITIVE'=>tr ...

  10. 各国iPhone5系列最新裸机价格

    美国/加拿大/中国香港/中国大陆iPhone5系列最新裸机价格