摘要:
使用new操作符来定义一个对象QVBoxLayout *layout = new QVBoxLayout(&window);另外一种方法QVBoxLayout layout(&window);C++并没有提供内存自动管理机制,通常,需要程序开发人员自己去做这些事情,比如在构造函数中使用了new去申请了一个对象,那么在析构函数中就要显示的调用delete去删除这个对象。但是QT提供了它自己的内存管理,QT的类构造函数都会有个parent参数,用于指明它的父对象,QT提供了这样的机制,当父对象调用delete时,QT会自动的delete所有的子对象。所以在使用new操作符去申请对象 阅读全文
摘要:
关于布局,布局可以采用绝对定位和布局定位,绝对定位就是直接给出坐标值,但是如果用户改变了窗口大小,比如最大化,如果你自己不做处理,那么窗口上面的这些控件还是在原来位置,并不能随着窗口变化而变化。QT提供了布局管理器,可以避免这种问题出现,常用的有水平布局,垂直布局,网格布局在布局管理器中使用addWidget添加一个控件,使用addLayout添加一个子布局1.水平布局#include <QApplication>#include <QPushButton>#include <QHBoxLayout>int main(int argc, char *argv 阅读全文
摘要:
为了是我们的QT程序支持如中文等其他语言,通常的做法是在需要翻译的地方显示的用tr标记,所以你在阅读其他人编写的源程序时会看到很多字符串做了tr标记,这样做是有原因的。1.在hello.pro文件中增加TRANSLATIONS = hello_zh_CN.ts2.进入工程目录,运行lupdate hello.pro,生成hello_zh_CN.ts文件3.使用Qt Creator打开这个文件(或者直接用vi或gedit打开都可以),对翻译部分进行翻译,比如<source>hello!</source><translation type="unfinish 阅读全文
摘要:
qt学习第一个程序hello world!新建一个空的工程hello,然后新建一个文件main.cpp,在main.cpp里面添加内容如下#include <QApplication>#include <QLabel>int main(int argc, char *argv[]){ QApplication app(argc, argv); QLabel label(QObject::tr("Hello, world!")); label.show(); return app.exec();}前面两行包含头文件,在QT 4中,头文件和类名是一致的, 阅读全文
摘要:
1.静态库和共享库的概念在链接共享库时只是指定了动态链接器和该程序所需要的库文件,并没有真正的做链接,可执行文件中仍然是未定义的符号,需要在运行时做动态链接。而在链接静态库时,链接器会把静态库中的目标文件取出来和可执行文件真正的链接在一起,所以采用静态库的可执行文件一般很大,不需要库文件也能运行,而采用共享库的可执行文件一般比较小,需要库文件才能运行。2.如何制作静态库和共享库(1)静态库制作首先将源文件编译成目标文件,制作静态库采用打包命令ar即可,例如:ar rs libname.a a.o b.o c.o,r表示将后面的文件列表添加到文件包,如果文件包不存在就创建它,如果文件包已有同名文 阅读全文
摘要:
之前之前用R4,现在一下就跳到用R7了,ANDROID4.0出来过后,应该有不少热机友敢望资疗吧,OK,在网上偶尔浏览的时候,看到有很多初学者希望了解在ANDROID中NDK应用的开发,不知道它是怎么开发与运行的,今天我就简单来图解一个HelloWorld的简单实列吧,以好供初学者做给力的参考,OK,不废话了,直入正题吧:首先,我们得配置环境,当然这是在你本来就有SDK开发环境的情况下,请去官方下个NDK吧:http://www.android.com.,最新版本为android-ndk-r7-linux-x86.tar.bz2,即R7,我一直用的是LINUX,所以我下的是LINUX版本,如果 阅读全文
摘要:
十三:RTPInterface详解好几天没写blog了。看源码真累啊,还要把理解的写到纸上,还要组织混乱的思想,令人头痛,所以这需要激情。不过,今天激情又来了。大家应该已理解了GroupSocket这个类。理论上讲那些需要操作udp socket 的类应保存GroupSocket的实例。但事实并不是这样,可以看一下RTPSink,RTPSource,RTCPInstance等,它们都没有保存GroupSocket型的变量。那它们通过哪个类进行socket操作呢?是RTPInterface!!这些类接收的GroupSocket指针最后都传给了 RTPInterface 。为什么用RTPInter 阅读全文
摘要:
近来着眼于ANDROID4.0的关注与研究,第一时间把ANDROID4.0源码下下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平台研究而又未及时获得相关资源的热机友们做个简单的参考,好了,废话不多说,我就直接贴图吧,现在很简单,只要你是LINUX系统,一直并使其开发,那就不必要考虑之前JDK环境的问题,直接从基本环境确定下入手吧,首先打开http://www.android.com进入:看到Getting the Source,点击进入,进入页面后,里面有详细的下载描述,不用说,一步步来,很简单的,与之前一样,首先创建目录: 阅读全文
摘要:
8086CPU有两种地址空间,一是内存地址空间,二是端口地址空间,访问端口只能用in和out指令,分别用于从端口读数据和往端口写数据,CPU最多可以定位64KB个不同的端口,端口地址范围为0~65535。在访问端口时,只能用ax或al来存放从端口读取的数据和往端口写入的数据,8位端口用al,16位端口用ax。在访问端口号为0~255时在指令中直接给出端口号。in al, 20hout 20h, al在访问端口号为256~65535时要将端口号放在dx中。mov dx, 3f8hin al, dxout dx, al 阅读全文
摘要:
十二 h264 rtp包的时间戳这次我们一起来分析一下live555中是怎样为rtp包打时间戳的.就以h264为例吧.void H264VideoRTPSink::doSpecialFrameHandling(unsigned /*fragmentationOffset*/, unsigned char* /*frameStart*/, unsigned /*numBytesInFrame*/, struct timeval framePresentationTime, unsigned /*numRemainingBytes*/)
{ // Set the RTP 'M' . 阅读全文