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

可停靠物件和工具栏

可停靠物件是能停靠在QMainWindow边上或者悬浮为一个独立窗口的物件。QMainWindow提供四个可停靠物件区域:中央物件的上面,下面,左边,右边各一个。像Microsoft Visual Studio和Qt语言家等程序大量使用了可停靠物件以提供一个非常灵活的用户界面。在Qt中,可停靠物件是QDockWidget的实现。

图6.13 一个带有一个可停靠物件的QMainWindow

每个可停靠物件都有自己的标题栏,甚至在它们停靠住也一样。用户可以拖动可停靠物件的标题栏把它从一个停靠区域移动到另一个停靠区域。它们还能通过把可停靠窗口拖离所有停靠区域使它从一个区域脱离出来并成为一个悬浮起来成为一个独立的窗口。自由浮动的可停靠窗口总是在他们 主窗口的上面。用户可以点击物件标题栏上的关闭按钮来关闭一个QDockWidget。所有这些功能的组合可通过调用QDockWidget::setFeatures()来禁止。
在Qt的早期版本中,工具栏被当然可停靠物件对待,并与之共享相同的停靠区域。从Qt 4 开始,工具栏占据中央物件周围的它们自己的区域(如图6.14所示),并且它们还不能被脱离开。如果需要一个浮动的工具栏,我们可以简单的把它放到一个QDockWindow里面即可。

滚动区域

QScrollArea类提供了一个可滚动的视口和两个滚动条。如果我们想给一个物件添加滚动条,使用QscrollArea比使用我们的QscrollBars并自己实现滚动功能要简单的多。

图 6.11 QscrollArea的示例物件

使用QScrollArea的方法是以我们想添加滚动条的物件为参数调用setWidget()。QScrollArea会自动重置物件的父物件以让它成为该视口(通过QScrollArea::viewport()访问)的子物件,如果当前还不是的话。例如,如果我们希望在第5章中开发的IconEdit物件有一个滚动条,我们可以像下面这么写:

分隔条

QSplitter是一个可包含其他物件的物件。在分隔条中的物件被分隔手柄分开。用户可拖动手柄改变分隔条中的子物件的尺寸。分隔条经常被用作一种布局管理器的替代,以给用户更多的控制。
一个QSplitter的子物件被以它们被创建的顺序并排(或者一个在其他的下面)在一起放置,并在相邻的物件间有分隔手柄。下面是创建图6.7中的窗口的代码:

堆栈布局

QStackedLayout类布置一组物件或者“页”,并且在同一时刻仅显示其中一个,隐藏其他的。QStackedLayout本身不可见,它也不为用户的变换页操作提供内存方法。在图6.5中的小箭头和深灰色边框是Qt设计师提供的让设计时管理布局更容易些。为了方便,Qt还包括QStackedWidget,它提供了一个带有内建QStackedLayout的QWidget。
图6.5 QStackedLayout

页序号是从0开始计的。要使一个指定的子物件可见,我们可以用一个页序号为参数调用setCurrentIndex()。一个子物件的的页序号可使用indexOf()获得。
图6.6中的选项对话框是一个使用了QStackedLayout的例子。该对话框由左边的QListWidget和右边的QStackedLayout组成。在QlistWidget中的每一项对应于QStackedLayout中的不同页。下面是该对话框的构造函数相关代码:

布局窗体上的物件

有三种管理窗体上的子物件的布局的方法:绝对位置,手工布局和布局管理器。我们将依次看看每种方法,使用图6.1中的“Find File “对话框作为例子。
图6.1 文件查找对话框

绝对位置法是布置物件的最让人讨厌的。它通过硬编码窗体上子物件的尺寸和位置以及固定尺寸的窗体。在上面是使用了绝对位置法的FindFileDialog构造函数:

第 6 章 布局管理

  • 布局窗体上的物件
  • 堆栈布局
  • 分隔条
  • 滚动区域
  • 停靠物件和工具栏
  • 多文档界面
  • 每个放在窗体上的物件都必须给它一个合适的尺寸和位置。Qt提供了几个布置窗体上的物件的类:QHBoxLayout, QVBoxLayout, QGridLayout, 和 QstackLayout。这些类是如此简单以至于几乎每个Qt开发人员都使用它们,或者直接在源代码中使用或者通过Qt设计师。
    另一个使用Qt的布局系统的原因是它们能保证窗体自动适应不同的字体,语言和平台。如果用户改变了系统的字体设置,程序的窗体将会立即响应,如果有必要的话调整他们的尺寸。
    其他能执行布局管理的类包括QSplitter, QScrollArea, QMainWindow, 和 QWorkspace。这些类莫须有的特点是他们都提供了能让用户控制的简单布局。例如,Qsplitter提供了一个能让用户拖动物件的尺寸的分隔条,Qworkspace提供了对MDI(多文档界面)的支持,意思是在一个程序的主窗口能同时显示许多的文档窗口。因为它们经常用于替代来合适的布局类,它们将在本章详细阐述

    CLISP语言中的数组

    1. 数组中可用的数据类型,array-element-type

      (unsigned-byte 2) (unsigned-byte 4) (unsigned-byte 8) (unsigned-byte 16) (unsigned-byte 32)
      bit charactor nil

    2. 构造数组

      make-array 函数。构造一个新的数组,构造时可指定数组的维数,数据类型,初始化值。
      adjust-array 函数。调整一个已有的数组,修改数组的维数,数据类型,值。

    不识之字何其多也

    最近看《大秦帝国》一书,遇到许多不认识的字啊,且记之以自勉强。

    嚭 pǐ

    ㄆㄧˇ

    大。

    古人名用字。

    郑码:BJGJ,U:56AD,GBK:87BA

    笔画数:19,部首:口,笔顺编号:1212514312511324251

    宰嚭:即太宰嚭。本名伯嚭,系春秋时楚伯州犁之孙。楚诛伯州犁,伯嚭奔吴,吴以为大夫,后任太宰,故称太宰嚭。

    嚭嚭:犹勃勃。心跳的样子。

    拆开看 喜否? 高兴不?

    谿

    同“溪”。

    笔画数:17;
    部首:谷;
    笔顺编号:34435541343434251

    clisp语言中的字符

    1. 介绍
    函数:char-code 计算一个字符的ASCII值。
    函数:code-char 根据ASCII值构造一个字符。

    char-code 函数的返回值范围:
    binaries built without UNICODE support with UNICODE support
    CHAR-CODE-LIMIT 2^8 = 256 17 * 216 = 1114112

    其中CHAR-CODE-LIMIT 变量为系统定义,表示可能的ASCII极限值,但不包括这个值。

    内置数据类型 EXT:STRING-CHAR 和 BASE-CHAR 都等价于 CHARACTER。

    函数 EXT:CHAR-WIDTH 计算字符的宽度,即占用的字节数。
    对于不占用空间的字符,返回值为 0 (像控制字符及其组合)
    对于东亚又字节字符,返回值为 2
    其他所有字符,返回值皆为 1

    2. 特殊字符说明

    页面

    订阅 www.qtchina.tk RSS


    Main menu 2

    by Dr. Radut