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中,一个事件是继承自QEvent的对象。Qt处理了100多种事件,每一种通过一个枚举值标识。例如,对于鼠标按键事件QEvent::type()返回QEvent::MouseButtonPress。

      许多事件类型需要比存储在普通QEvent对象中更多的信息。例如,鼠标事件需要存储是哪个按键触发的事件,以及在事件发现时鼠标的位置在哪。这些附加的信息被存储在专门的QEvent的子类中,如 QMouseEvent。

      事件通过他们的从 QObject继承来的event()函数通知给其他对象。在QWidget中的event()实现传递了大多数普通类型的事件给特定的事件处理器,如mousePressEvent(), keyPress-Event(), 和 paintEvent()。

      在前面章节中实现MainWindow, IconEditor, 和 Plotter的时候,我们已经见过了许多事件处理器。在QEvent的参考手册中还列出了许多其他类型的事件,还可以创建自定义事件并自己分发这些事件。这里,我们将预览一个两个值得说明的常见事件:键盘事件和计时器事件。

Category:

第7章 事件处理

  • 重新实现事件处理器
  • 安装事件过滤器
  • 在集中处理过程中保持响应
  •     事件是由窗口系统或者Qt自己产生以响应不同事件。当用户按下或者翻译一个键盘键或者鼠标键时,一个键盘或者鼠标事件被生成。当窗口首次显示时,一个绘图事件被生成认告诉新的可见窗口它需要重绘自己。大多数事件被生成以响应用户的行为,但也有些,像计时器事件,是由系统独立生成的。
    当我们使用Qt编程的时候,我们几乎不需要考虑事件,因为当标志性事件发生时,Qt的物件会发射信号。当我们编写自定义物件或者我们想修改现有Qt物件的行为时事件变得非常有用。

        事件应该不会与信号冲突。有一个规则是:在使用物件的时候信号比较有用,而在实现物件的时候事件比较有用。例如,当我们使用QPushButton的时候,我们对它的clicked()信号更感兴趣而不是导致信号被发射的底层的鼠标或者键盘事件。但是如果我们在实现一个像QPushButton的类,我们就需要编写处理鼠标和键盘事件的代码并在必要的时候发射clicked()信号。

    Category:

    Vim 7.2编辑器发布

    Vim团队宣布,经过15个月的努力工作,最新Vim稳定版7.2发布了。Vim7.2修正了大量bug并更新了运行时文件,最主要的新特性在于加入对脚本浮点数的支持。另外,修正了上一版中发现多个导致崩溃和威胁安全的问题。关于此次更新的详细信息在安装完成后可以使用 ":help version-7.2"命令查看。

    Category:

    nullfxp中两个远程服务器间文件拷贝的另一方法

    目前实现的方法是在客户端同时连接到两个服务器,数据需要通过本地客户端中转

    这种方法的数据传递效率不高。

    图示:对于丙个服务器A、B,当前要从A上传递文件到B服务器上,客户端为C

    A---->C----->B

    另一种方法说明:对于同一种情况。

    C
    |
    | 控制命令
    |
    V
    A----->B

    客户端C控制数据源A,让其连接到B,并将文件传到B服务器上。

    这种方法的优点数据不需要中转,传输速度会变快。

    缺点是,C对A的控制复杂,对于可能出现的情况不好控制,并且有些服务器只开SFTP而没有SSH命令执行功能。

    Category:

    nullfxp中登陆密码的存储及使用说明

    在nullfxp中,密码需要管理及存储。

    在密码传递的时候,把密码存储在QUrl中传递的,这里会导致密码中所包含的特殊字符问题。

    因此需要在适当的时候对密码进行编码,在适当的时候进行解码。

    为了不让这个编码解码产生混乱,程序需要按照规则闭能知道什么时候需要编码、解码:

    1。保证在密码来源的地方为未编码的。会话存储必须为编码过的。

    来源只有一个是来自会话对话框.在它向外传递之前就已经编码了。

    2。在传递过程中都使用url编码的形式。像参数等。

    3。直到实现调用登陆认证代码的时候再将其转换为未编码的形式。

    也就是说在程序运行过程中没有未编码密码形式存在,未编码密码的临时变量只是为了转换为编码密码,此类的程序生命周期不应该超出函数范围。

    详细说明这个密码处理规则是因为,在前面几版本的nullfxp中,因为密码编码解码问题导致的bug反复出现,一致性不好,此文即生。

    Category:

    nullfxp模块设计系列

    在nullfxp中有许多比较独立的模块,这些独立的模块有一定的算法及实现规则,本文讲述实现这些模块时的设计思路,保证模块的功能正确,高效,简单。

    本文目标是做为设计文档的详细补充,有针对性的阐述设计文档中的一些细节。

    文本包含nullfxp设计上的一些不成熟思路的记录、整理。

    本文还涉及到Qt实践中的一些知识。

    Category:

    北京奥运开幕式几个有意思的镜头

    1. 中国台北代表团进场的时候,镜头转向主席台上的胡哥,当时胡的表情比较有意思。

    2. 冈比亚进场的时候,镜头也转了。

    3. 加拿大入场的时候,镜头转向的那个是加总理吧,此人长的的确很SHA。

    4. 还有一个是在主席台上三个领导人交头接耳的镜头,不知道在说啥。

    mingw编译qt 4.4.x的问题

    前两天qt 4.4.1 bug修正版本出来,正好nullfxp 发布新版本1.6.2,为编译windows版本的nullfxp准备编译这个版本的qt一起发布。

    在winxp, mingw 上编译qt 4.4.1的时候,在inputmethod目录下遇到一个编译问题。使用的g++版本为 4.2.1-sjlj.
    遇到错误可能是这个版本的g++不稳定,有bug的问题。把g++换到3.4.5稳定版本这个错误没有再出现。qt 4.4.1终于可以完整的编译出来了。(注: 在编译nullfxp的时候需要再把 gcc版本换为4.2.1)

    记得上次在mingw平台编译qt 4.4.0的时候遇到编译webkit时的问题,下载编译好的二进制版本用着了,当时使用的是同样的编译环境。出现错误的原因应该也在这。

    nullfxp 1.6.2 Released

    修改会话管理几个事件处理方式。
    添加会话管理时操作提示功能。
    修正密码存在特殊字符的bug。
    完成传输进度窗口用时计算功能。
    修正Solaris平台编译问题。
    改进远程文件改名功能,实现直接在目录树中修改功能。

    从本版本开始发布loongson(龙芯)CPU上支持的Linux二进制包。在此感觉www.unix-center.net提供的Lonngson-3体验平台。

    Category:

    Qt 4.4.1 release

    这个版本是个bug修改版本,没有新功能加入

    一个好消息是这个版本的qt已经能在龙芯CPU(基于MIPS)的debian系统编译成功。而前一版本qt 4.4.0则在编译webkit模块过程出错。

    更改日志:

    http://trolltech.com/developer/resources/notes/changes/changes-4.4.1

    Category:

    页面

    订阅 www.qtchina.tk RSS


    Main menu 2

    by Dr. Radut