不幸的是,QDirModel有一个严重的限制:因为view不响应鼠标操作,我们不得不自己建立这些功能。除此之外,每个view中,用户都一次只能选择一个元素。如果你想要允许同时选择多个项目,你也必须自己去设置。我们可以通过设计我们自己的文件对话框来修正这些缺点,就好像我们在图8.6中看到的一样。作为一项好的副产品,我们得以熟悉如何在Designer中使用view类。
 
我们的文件选择对话框基于Designer的对话框模板,带有按钮盒选择可用分区的组合框,还有一个右侧工具按钮和一个stack widget(图8.8中显示了大部分需要的控件)。作为第一个控件(widget),我们在stack上放一个list view。

 
插入页这个选项位于上下文菜单(sacked widget的上下文菜单只有你把鼠标停放在两个小三角的位置上点击右键才会打开),如图8.7所示。这样,如果需要的话,通过插入页,就有了控件来盛放更多的插件。按照这种方式,我们可以通过添加另外的list view和tree view来扩展stack。


之后,我们想要使用按钮——我们在属性编辑器里把它的对象名设置为switchButton,我们把它的文本属性设置为“V”(代表View的缩写;如果你想要点别的,你可以在图标属性里面选择一个合适的图标)——它的功能是在不同的view之间来回切换。我们把组合框和这个工具按钮都放到一个Frame里面。要做到这个,我们必须先放置一个frame并调好位置,再把选择框和工具按钮拖进去。如果在松开左键之前,frame有颜色了,就代表它接收这个控件作为它的子控件。我们选中组合框和工具 按钮,在上下文菜单里选择HorizontalLayout。我也在给Ok按钮改名:右键选择更换文本,我们够输入新的文本标签Open,以取代OK。
 


 

《Qt编程的艺术》——8.2.1 在Designer中使用View类的更多相关文章

  1. VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用

    VB.NET中网络编程的另一种方案---- system.net中的HttpWebRequest类的使用 在VB.net中进行网络编程,除了我之前写的随笔中的使用WinHttp组件进行编程,还有另一种 ...

  2. 《Qt编程的艺术》——9.1 QtSql模块的结构

    QtSql是一个独立的库,如果需要的话,它可以加载附加的插件.不同于QtCore和QtGui,它的内容默认情况下并没有整合进生成的project中.要使用这个库,我们要编辑 .pro文件,添加下列条目 ...

  3. 《Qt编程的艺术》——5.1 手动布局

    在传统的GUI设计中,每个控件(Widget)都要手动地绑定在窗口之上的一个点上(也就是说,这个控件被指定成了给定GUI元素的父对象),同时还要指定这个控件的高度和宽度.作为所有图形元素的基础类,QW ...

  4. 《Qt编程的艺术》——8.2 显示目录层次

    现在我们准备通过创建一个小程序来获得关于InterView的实践经验,使用QDirModel和拿来就用的view,来在四个不同的view中显示主目录,如图8.5所示.在代码里,除了例行公事先实例化一个 ...

  5. Java并发编程的艺术笔记(五)——Java中的锁

    一.Lock接口的几个功能: 显示的获取和释放锁 尝试非阻塞的获取锁 能被中断的获取锁 超时获取锁 使用方式: Lock lock = new ReentrantLock(); lock.lock() ...

  6. 《Java并发编程的艺术》 第9章 Java中的线程池

    第9章 Java中的线程池 在开发过程中,合理地使用线程池能带来3个好处: 降低资源消耗.通过重复利用已创建的线程 降低线程创建和销毁造成的消耗. 提高响应速度.当任务到达时,任务可以不需要等到线程创 ...

  7. 《Java并发编程的艺术》第5章 Java中的锁 ——学习笔记

    参考https://www.cnblogs.com/lilinzhiyu/p/8125195.html 5.1 Lock接口 锁是用来控制多个线程访问共享资源的方式. 一般来说一个锁可以防止多个线程同 ...

  8. qt编程入门

    面对qt编程,必须先知道qt中常用的类: QPushButton按钮类.QLabel标签类.QMessageBox对话框类.QCheckBox.QAction.QMenu.QStatusBar.QTo ...

  9. Visual Studio下Qt编程中对中文的处理

    Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...

随机推荐

  1. Xcode 常用编译选项设置

    Xcode 常用编译选项设置 在xcconfig文件中指定即可. 用标准库连接 LINK_WITH_STANDARD_LIBRARIES = YES如果激活此设置,那么编译器在链接过程中会自动使用通过 ...

  2. 添加Appicon的方法

    1.将设计好的图片,拖拽到Groups&Files的Resources目录下: 2.修改Resources目录下的“工程名-info.plist”文件 3.修改该文件的Iconfile属性,填 ...

  3. 关于ASIHTTPRequest连续请求,并发连续,间隔时间很小崩溃问题

    在不停的刷新ASIHttpRequest的网络请求时,总是在刷新几次之后,整个app崩溃掉.我的app使用的ARC模式,以为可以自动释放到request的请求.经过摸索,还是需要在dealloc函数加 ...

  4. centos 6.x 安装redis

    1.yum 安装 yum install redis 如果提示找不到包的话  可以yum install epel-release   先安装epel第三方库 2.源码安装 https://redis ...

  5. 异常练习一 throw

    package 异常练习;class OutageroudleException extends RuntimeException{ OutageroudleException(){ } Outage ...

  6. c读写文件相关

    1.打开文件: 函数原型: FILE * fopen(const char * path,const char * mode); 返回值: 文件顺利打开后,指向该流的文件指针就会被返回.如果文件打开失 ...

  7. 【Ural1057】幂和的数量

    [题目描述] 写一个程序来计算区间[X,Y]内满足如下条件的整数个数:它恰好等于K个互不相等的B的整数幂之和. 举个例子.令X=15,Y=20,K=2,B=2.在这个例子中,区间[15,20]内有3个 ...

  8. 数组去重的三种方法及from方法

    直接上代码: var str="adbbckddwerivka"; var arr=str.split(""); console.log(arr); //ind ...

  9. php之文件上传简单介绍

    要声明的form表单格式 <form action="act.php" method="post" enctype="multipart/for ...

  10. eval函数:分号的应用

    eval("echo'hello world';"); ("参数;") eval函数把参数当做php代码来执行,参数后要有分号,最后还要另加一个分号 相当于: ...