代码改变世界

Win7+VS2005编译Qt4.7.3+phonon

2013-03-21 10:35 by bingcaihuang, 2153 阅读, 1 推荐, 收藏, 编辑
摘要:Qt官网上下载的源代码在编译时并没有将phonon继承进去,只提供了源代码,而在Win7+VS2005中编译phonon时遇到不少的问题,因为phonon只是一个前端程序,要使用其实现多媒体的播放还需要配合Qt基本库、phonon_backend(后端插件)和多媒体播放后台等等。phonon只提供了一套API接口给客户端程序调用,同时为后端插件提供一个规范,向后端插件传递客户端程序发出的指令,并且从后端插件返回给客户端程序当前媒体的状态和信息,起到桥梁的作用。而后端插件才是实际进行读入媒体、解码并且播放的部分,所以要在Qt环境下使用phonon需要:编译Phonon库:通常情况下Qt默认没有编 阅读全文

Q_UNUSED()

2011-08-07 10:02 by bingcaihuang, 602 阅读, 0 推荐, 收藏, 编辑
摘要:Q_UNUSED() 没有实质性的作用,用来避免编译器警告01//比如说0203inttestFunc(inta,intb,intc,intd)04{05inte;06returna+b+c;07}0809//编译器会有警告 d和e未使用;1011//于是12inttestFunc(inta,intb,intc,intd)13{14inte;1516Q_UNUSED(d)17Q_UNUSED(e)18returna+b+c;19}2021//多数时候,这样用总不是太好2223//比如 e,就不该出现,2425//对于d,也可以 注释掉2627inttestFunc(inta,intb,intc 阅读全文

QT发布程序中文乱码完全解决方案 Qt for Windows

2011-07-30 10:03 by bingcaihuang, 1392 阅读, 0 推荐, 收藏, 编辑
摘要:我讨厌在程序中用tr()进行中文转换,我写的程序也没打算给老外用,因此希望程序中直接使用中文字符串,讨厌任何形式的转换操作。好在开发环境中运行程序显示中文没有问题,可部署到新机器上中文却是乱码,搜索了很多帖子,给出的答案都不尽详实(或许我没看到,抱歉),不是缺少必要的语句就是顺序有误。于是自己根据这些帖子的提示(还是要十分感谢这些帖子),试验了很多次,终于找到了终极方案,现与大家分享: 1. 在主程序main开始处增加以下语句,注意要按顺序书写:QApplication::addLibraryPath("./plugins");QTextCodec::setCodecFor 阅读全文

QWidget QMainWindow QDialog 三者区别

2011-07-24 21:55 by bingcaihuang, 939 阅读, 0 推荐, 收藏, 编辑
摘要:Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间。通常情况下,你可以忽略这个类。QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用。QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编 阅读全文

浅析在QtWidget中自定义Model

2011-07-24 21:39 by bingcaihuang, 398 阅读, 0 推荐, 收藏, 编辑
摘要:Qt4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用。这里对model/view的结构进行了描述,结构中的每个组件都进行了解释.。一直觉得Qt里的Model-View概念极其神秘, 因为看过很多一知半解的source code, 却总是咋看咋不懂,急了满头大汗之余不禁感叹 — 老了,脑子不够用了!这两天因为在写rssreader的关系,用到了MVC, 总算有点压力学习学习ModelView的奥秘,而 阅读全文

C++一些基本的内存释放模板

2011-07-24 16:21 by bingcaihuang, 880 阅读, 0 推荐, 收藏, 编辑
摘要:1.方法名称:__delete(template)方法描述:以传入的指针类型,去释放传入的list所包含的所有item.传入的类型必须是指针类型,且不能是void*.如果list为空不会出错template <class T>void __delete(TList* list){if(list == NULL){return;}for(int i=0; i<list->Count; i++){delete (T)list->Items[i];}list->Clear();}2.方法名称:DeleteStruct方法描述:释放结构体所占内存;参数:T* tSt 阅读全文

详解 Qt 线程间共享数据

2011-07-14 23:17 by bingcaihuang, 4318 阅读, 0 推荐, 收藏, 编辑
摘要:使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容。Qt线程间共享数据主要有两种方式:使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的;使用singal/slot机制,把数据从一个线程传递到另外一个线程。第一种办法在各个编程语言都使用普遍,而第二种方式倒是QT的特有方式,下面主要学习一下这种方式:在线程之间传递signal与在一个线程内传递signal是不一样的。在一个线程内传递signal 阅读全文

C/C++ 数据范围int

2011-07-14 09:36 by bingcaihuang, 62136 阅读, 6 推荐, 收藏, 编辑
摘要:速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)double 1.7 * 10^308 (8 Bytes)详细教程:===================== 阅读全文

如何传递成员函数指针参数

2011-07-13 17:02 by bingcaihuang, 3710 阅读, 0 推荐, 收藏, 编辑
摘要:在C++中,成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的,首先我们来回顾一下普通函数指针的传递方法://---------------------------------------------------------------------------int fun1(int i){ return i;}void fun2(int j, int (*p)(int)){ cout < < p(j);}void main(){ int i=1; fun2(i,fun1);}//--------------------------------------------- 阅读全文

SQLSERVER时间函数

2011-07-12 13:49 by bingcaihuang, 258 阅读, 0 推荐, 收藏, 编辑
摘要:一、sqlserver日期时间函数SqlServer中的日期与时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值例如:向日期加上2天selectdateadd(day,2,'2004-10-15')--返回:2004-10-1700:00:00.0003.datediff返回跨两个指定日期的日期和时间边界数。selectdatediff(day,'2004-09-01','2004-09-18')--返回:174.datepart返回代表指定日期的指定日期部分 阅读全文