Jump to Navigation

Welcome!

  NullGet是使用Qt编写的,运行于多种平台的GUI界面的多线程多协议断点续传下载软件。  使用NullGet可以轻松下载网络的多种协议的数据流,加快下载速度,支持断点续传,目前支持的协议有:HTTP,HTTPS,FTP,MMS,RTSP。而且它能运行于当前大多数流行的操作系统,包括Windows,Linux,FreeBSD等。     下载NullGet

  NullFXP 是一个基于Qt 4 开发的SFTP/FTP 客户端软件。目前已经实现基本的多文件上下传功能。详细信息查看本站项目说明页面。     下载nullfxp

  我们的目标是打造一个开源的,跨平台的,多线程的,运行稳定的下载软件,另一个就是整理Qt库开发跨平台GUI应用程序的相关资料。欢迎各位朋友对本站开源项目提供意见及建议,欢迎有兴趣的朋友参与本站开源项目,请联系 drswinghead at gmail dot com

把自定义物件整合到Qt设计师中

在我们能在Qt设计师中使用自定义物件之前,我们必须让Qt设计师注意到它们。有两种技术完成这个:“升级“方法和插件方法。
升级方法是一种快速简单的方法。它包括:选择一个与我们的自定义物件有相似API的内建Qt 物件,完成Qt设计师中的关于我们的自定义物件信息的一个对话框。这个物件就能用于使用Qt设计师开发的窗体,虽然在编辑或者预览窗体的时候它被表示相关联的内建Qt物件。
下面是如何使用这种方法把HexSpinBox物件插入到一个窗体的步骤:
1.通过从Qt设计师的物件盒子拖一个QSpinBox到窗体上创建一个QSpinBox 。
2.右键点击该spin box并从上下文菜单中选择升级为自定义物件。
3.在弹出的对话框中填入类名"HexSpinBox",头文件"hexspinbox.h" 。
哇!uic生成的代码将包含hexspinbox.h而不是并暗示这是一个HexSpinBox。在Qt设计师中,HexSpinBox被表示一个QSpinBox,允许我们设置QSpinBox的所有属性(例如,范围和当前值)。
图5.6 Qt设计师的自定义物件对话框

Category:

TCMalloc:线程缓存的Malloc

作者:Sanjay Ghemawat, Paul Menage

原文

翻译:ShiningRay

动机

TCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptmalloc在一台2.8GHz的P4机器上(对于小对象)执行一次mallocfree大约需要300纳秒。而TCMalloc的版本同样的操作大约只需要50纳秒。malloc版本的速度是至关重要的,因为如果malloc不够快,应用程序的作者就很有可能在malloc之上写一个自己的自由列表。这就可能导致额外的代码复杂度,以及更多的内存占用――除非作者本身非常仔细地划分自由列表的大小并经常从自由列表中清除空闲的对象。

TCMalloc也减少了多线程程序中的锁争用情况。对于小对象,几乎已经达到了零争用。对于大对象,TCMalloc尝试使用粒度较好和有效的自旋锁。ptmalloc同样是通过使用每线程各自的场地来减少锁争用,但是ptmalloc2使用每线程场地有一个很大的问题。在ptmalloc2中,内存可能会从一个场地移动到另一个。这有可能导致大量空间被浪费。例如,在一个Google的应用中,第一阶段可能会为其URL标准化的数据结构分配大约300MB内存。当第一阶段结束后,第二阶段将从同样的地址空间开始。如果第二个阶段被安排到了一个与第一阶段什?用的场地不同的场地,这个阶段不会复用任何第一阶段留下的的内存,并会给地址空间添加另外一个300MB。类似的内存爆炸问题也可以在其他的应用中看到。

TCMalloc的另一个好处是小对象的空间最优表现形式。例如,分配N个8字节对象可能要使用大约8N * 1.01字节的空间。即,多用百分之一的空间。而ptmalloc2中每个对象都使用了一个四字节的头,(我认为)并将最终的尺寸规整为8字节的倍数,最后使用了16N字节。

Category:

第五章 创建自定义物件

  • 自定义Qt物件
  • 创建QWidget 的子类
  • 把自定义物件和Qt设计师整合在一起
  • 双缓冲技术
  • 本章将阐述如果使用Qt开发自定义物件。自定义物件可以通过创建现有的Qt物件或者直接创建QWidget的子类来创建。两种方法我们都会演示,并且我们还要看一看如果把自定义物件整合到Qt设计师,这样它就能被当作内建Qt物件来使用了。我们将通过演示一个使用了双缓冲技术(一种强大的调整绘图技术)的自定义物件来圆满结束本章内容。

    Category:

    ssh 密钥登陆过程

    ssh 协议常用登陆认证方式包括以下四种:密码认证、密钥认证、Keyboard Inteactive、GSSAPI。
    密码认证非常常见,这里不再说明。Keyboard Inteactive、GSSAPI 下篇再讨论。这里重点说明密钥认证过程。

    第一步:生成密钥对
    密钥对包括公钥和私钥, 公钥放在ssh服务器上,私钥客户端保存使用。

    生成步骤:

    Category:

    emacs TAB&空格缩进配置、命令

    最近在使用emacs(不是xemacs,不是gtk-emacs)编写C程序,碰到的前辈同样遇到的问题:缩进用TAB还是空格的问题。

    默认情况下emacs是使用TAB的,下面的配置语句可设定所有遇到TAB的地方都使用适当个数的空格缩进(写到配置文件~/.emacs中):

    1. (setq-default indent-tabs-mode nil)

    另外还认识了两个命令:

    libev 中文手册

    简介:

    libev是高性能事件循环/事件模型的网络库,并且包含大量新特性。

    它是继lievent和Event perl module之后的一套全新网络库。它追求的目标:速度更快,bug更少,特性更多,体积更小。

    它和libevent很像,按照作者的介绍,可以作为libevent的替代者,能够提供更高的性能。并不需要复杂的配置。

    希望它的出现,能为高性能网络应用注入新鲜血液。

    它的出现真是应了那句:很快,很强大。

    Category:

    几个C/C++语言log宏定义

    下面的定义使用了C中强大的宏功能及不定参数功能。
    对于调试C程序非常有用,输出格式如下:
    Debug: fun name at 'file name' on line 'no'.
    log 信息xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    分布式版本控制软件git的一个用途

    在两个或者多个不同源的svn库之间方便的交换数据。
    在每个源码树工作拷贝中同时使用svn及git版本控制,其中一个git库作为trunk处理,正常添加,提交文件等。其他git库作为分支,从git的 trunk中pull到数据,再使用svn提交。
    这样一来,就像是几个不同源的svn之间共享代码一样。

    nullfxp 1.5.5 Released

    * 为libssh2添加获取SSH服务器版本的API
    * 更新cmake工程文件到最新版本
    * 添加会话保存功能
    * 修正qt库版本 * 添加单元测试框架
    * bug fix: 1838581
    * bug fix: 1871087

    http://sourceforge.net/project/showfiles.php

    Category:

    Qt 4.4 发布

    Qt 4.4 Framework Broadens Rich Application Development with Integration of Web Content and Portability to Mobile Devices

    Category:

    页面

    订阅 www.qtchina.tk RSS


    Main menu 2

    by Dr. Radut