关于Qt中窗口部件的学习

  今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着假期的时间,好好学习。考研之后发现一个问题,无论当初你学的有多明白,总会忘记,最好的方法就是将他们记录下来,甚至写下你当时的心情,如果有一天你需要了,回过头来看看,是一笔不错的财富。

1. QDialog类对话框

1.1 模态和非模态对话框

  对于对话框,有模态(modal)和非模态(modeless)之分。模态对话框就是,对话框一出的时候,你不能点击对话框后面的面板了。非模态就是对话框出的时候,可以点击后面的面板。下面代码就是如何设定的。

 #include "widget.h"
 #include "ui_widget.h"
 #include <QDialog>
 #include <QDebug>

 Widget::Widget(QWidget *parent) :
     QWidget(parent),
     ui(new Ui::Widget)
 {
     ui->setupUi(this);
     // *建立一个QDialog对象,把这个对象设定在这个Widget里面
     // *这个对象目标建立一个:模态对话框(不能点击其他应用部分)
     QDialog *dialog1 = new QDialog(this);
     dialog1->setWindowTitle("DIALOG-1");
     // ** 调动dialog的方法,setModal(),给定参数为布尔类型的值
     // ** 如果是true建立一个模态对话框,如果是false建立一个非模态对话框
     dialog1->setModal(false);
     // ** 等效以下方法调动setWindowModality()
     // ** 给定参数:
     // ** 1. Qt::ApplicationModal ====> 阻塞整个应用程序(与setModal(true)效果同)
     // ** 2. Qt::WindowModal      ====> 阻塞他的父窗口和祖先窗口和它的子窗口
     // ** 3. Qt::NonModal         ====> 不阻塞任何窗口
     // dialog1->setWindowModality(Qt::ApplicationModal);

     // *建立一个QDialog对象的另一种方法

     QDialog dialog2(this);
     dialog2.setWindowTitle("DIALOG-2");
     dialog2.exec();                                 // 和show的区别是,这个需要关闭才能返回
                                                     // 而变量定义法和指针定义法区别在于,变量定义法会被释放掉。
     // 如果利用dialog2.show();将会一闪而过!

     dialog1->setWindowModality(Qt::ApplicationModal);
     dialog1->show();

 }

 Widget::~Widget()
 {
     delete ui;
 }

1.2 几种系统自带的标准对话框

  今天学习了几个自带的标准对话框,颜色对话框、文件对话框、字体对话框、输入对话框、消息、进度和向导对话框。这些对话框都是我们使用软件能接触的,理解起来比较容易,我们也不是为了学习这个几个对话框而学习,积累对他们的知识的同时,了解一下Qt里边所包含的类,变量如何使用,同时复习一下C++语言的基本规则。

1.2.1 颜色对话框

  对于颜色对话框,很好理解了。在Qt里面有个Color类,掌管颜色,如果按照字符串输出,会输出QColor(ARGB 1, 0.666667, 0, 0) 的

【Qt学习笔记】窗口部件整理的更多相关文章

  1. QT学习之窗口部件

    对话框--QDialog 模态对话框与非模态对话框 模态对话框:就是相当于没关闭它之前,不能再和该应用程序的其他窗口进行交互(比如新建项目时弹出的对话框) 非模态对话框:可以与它交互,也可以与该程序中 ...

  2. PyQt(Python+Qt)学习随笔:窗口部件大小策略sizePolicy与SizeConstraint布局大小约束的关系

    在<PyQt(Python+Qt)学习随笔:Qt Designer中部件的三个属性sizeHint缺省尺寸.minimumSizeHint建议最小尺寸和minimumSize最小尺寸>. ...

  3. Qt学习笔记-Widget布局管理

    Qt学习笔记4-Widget布局管理       以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...

  4. QT学习之窗口右键菜单

    #QT学习之窗口右键菜单 QWidget 及其子类都有右键菜单,主要因为其有两个与右键菜单相关联的函数: Qt::ContextMenuPolicy contextMenuPlicy() const ...

  5. qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...

  6. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

  7. Qt图形测绘窗口部件介绍

    Qt 图形测绘窗口部件,主要使用第三方窗口部件: 1.Qwt:http://qwt.sourceforge.net 开源免费 2.GraphPak: http://www.ics.com  收费 3. ...

  8. QT学习笔记(一)——Helloworld

    QT学习笔记(一)--Helloworld 一.调试的基本方法: Log调试法 --在代码中加入一定的打印语句 --打印程序状态和关键变量的值 断点调试法: --在开发环境中的对应代码行加上断点 -- ...

  9. Qt学习笔记(2)-利用StackWidget实现选项卡式页面

    学习笔记第二篇,利用Qt实现选项卡式的页面,效果如图1.1-图1.3所示.程序实现的功能是通过点击状态栏实现不同页面的切换,实际上Qt中自带有Tab选项卡式的控件,本文利用StackWidge实现类似 ...

随机推荐

  1. redis3.2 Jedis java操作

    package com.util; import java.util.HashSet; import java.util.List; import java.util.Map; import java ...

  2. warnin php startup in unknown on line 0:

    PHP Warning:  PHP Startup:  in Unknown on line 0 这种情况是因为扩展路径有问题导致的路径或错,或没有该扩展但ini中开启了此扩展

  3. JMeter学习-035-JMeter调试工具之二---Debug PostProcessor

    前文 JMeter学习-034-JMeter调试工具之一---HTTP Mirror Server讲述了HTTP镜像服务器在调试请求入参时的实例应用.此文我们讲述另一种测试脚本调试工具的使用. 前置处 ...

  4. FTP客户端连接时中文乱码问题处理

    1.问题场景: 使用FileZilla连接FTP时发现中文字符有乱码,如题: 2. 分析问题: 主要是字符问题引起的:FileZilla是自动检测字符集的,会导致部分中文字符集显示异常: 3.解决方法 ...

  5. Hibernate操作指南-实体之间的关联关系(基于注解)

  6. MVVM与Backbone demo

    MVVM https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel

  7. 如何发布一个Mac应用并使其成为全球付费榜第一

    Readdle公司如何发布第一个 Mac App,并使之成为Mac App Store 全球付费排名第一的 Easy注:自从发布了<程序员如何优雅的挣零花钱?>后,就不断有同学询问怎么做A ...

  8. querystring 解析url 查询字符串

    对前端同学来说,经常要碰到一种比较麻烦的情况,那就是url查询字符串的解析问题.说起来也不难,就是比较麻烦. 具体来处理这种情况的时候,相信有一部分同学就是针对具体项目中的需要的字符去正则匹配一下,业 ...

  9. MySQL添加用户、删除用户与授权

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 1.1 登录MYSQL: @>mysql -u root -p @&g ...

  10. 。。。学习CSS3的第一个属性border-radius。。。

    学习border-radius,感觉这个文档写的很不错: http://blog.sina.com.cn/s/blog_61671b520101gelr.html