【Qt学习笔记】窗口部件整理

关于Qt中窗口部件的学习

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

1. QDialog类对话框

1.1 模态和非模态对话框

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

 1 #include "widget.h"
 2 #include "ui_widget.h"
 3 #include <QDialog>
 4 #include <QDebug>
 5
 6 Widget::Widget(QWidget *parent) :
 7     QWidget(parent),
 8     ui(new Ui::Widget)
 9 {
10     ui->setupUi(this);
11     // *建立一个QDialog对象,把这个对象设定在这个Widget里面
12     // *这个对象目标建立一个:模态对话框(不能点击其他应用部分)
13     QDialog *dialog1 = new QDialog(this);
14     dialog1->setWindowTitle("DIALOG-1");
15     // ** 调动dialog的方法,setModal(),给定参数为布尔类型的值
16     // ** 如果是true建立一个模态对话框,如果是false建立一个非模态对话框
17     dialog1->setModal(false);
18     // ** 等效以下方法调动setWindowModality()
19     // ** 给定参数:
20     // ** 1. Qt::ApplicationModal ====> 阻塞整个应用程序(与setModal(true)效果同)
21     // ** 2. Qt::WindowModal      ====> 阻塞他的父窗口和祖先窗口和它的子窗口
22     // ** 3. Qt::NonModal         ====> 不阻塞任何窗口
23     // dialog1->setWindowModality(Qt::ApplicationModal);
24
25     // *建立一个QDialog对象的另一种方法
26
27     QDialog dialog2(this);
28     dialog2.setWindowTitle("DIALOG-2");
29     dialog2.exec();                                 // 和show的区别是,这个需要关闭才能返回
30                                                     // 而变量定义法和指针定义法区别在于,变量定义法会被释放掉。
31     // 如果利用dialog2.show();将会一闪而过!
32
33     dialog1->setWindowModality(Qt::ApplicationModal);
34     dialog1->show();
35
36 }
37
38 Widget::~Widget()
39 {
40     delete ui;
41 }
时间: 2024-10-15 02:56:48

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

QT学习笔记—1

1.模态和非模态的区别:非模态可以同时操作两个窗口,模态的只能在顶层窗口关闭之后才能使用其他窗口 //同时显示出widget和dialog窗口,非模态     QDialog *dialog = new QDialog(this);     dialog->show(); //同时显示出widget和dialog窗口,模态     QDialog *dialog = new QDialog(this);     dialog->setModal(true);     dialog->sh

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

QT学习笔记(1)

采用QT创建一个GUI的应用程序时,都必须包含一个QApplication的对象,而对于非GUI的QT程序,可以使用不依赖QtGui库的QApplication QT的主要类: QLable                   标签类 QPushButton          按钮类 QVBoxLayout          竖布局管理器类 QHBoxLayout          横布局管理器类 QWidget                 窗口部件类 QGridLayout        

【Qt学习笔记】13.拖放技术:Drag & Drop

1.接受拖放 Drag & Drop 是一个界面操作,用于在两个窗口间传递数据. Drag Source: 拖放源窗口 Drag Target: 拖放目标窗口 拖放操作: 1.在源窗口:选中目标,按下鼠标,移动,拖至目标窗口(Drag) 2.在目标窗口:取消鼠标,到指定位置,松开鼠标(Drop) (按下ESC取消操作) MIME: MIME(Multipurpose Internet Mail Extensions)被传递的数据以MIME格式传送,它是多组type-data数据:(type0,

【Qt学习笔记】2.窗体Widget && 屏幕坐标 && 布局

一.窗体 在Qt中,把窗体(口)叫做Widget. Widget可以是主窗体(口),也可以是依附在主窗体(口)上的各种控件,作为子窗体,这两种窗口,分别称作顶级窗口(top-level widget)和子窗口(sub widget). 顶级窗口:一个标准的窗口,带边框.标题栏.若干按钮.(独立) 子窗口:在窗口里面的窗口,例如:按钮.文本框等控件.(不独立,随着父窗口移动) 注意: 1.每个子窗口都有一个父窗口 2.子窗口里面可能包含了若干子窗口,是一层一层的关系. 3.顶级窗口也有父窗口:就是

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

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实

【Qt学习笔记】1.初步接触

一.前言 Qt是一个跨平台的C++图形面向对象的框架,今天开始学习并记录学习过程,希望通过这段时间的努力学会Qt的使用. 同时我也希望在学习的过程中对C++的各种特性有能深刻的认识. 此外,我在Qt初步的学习过程中,所用的环境应该是 VS2015 IDE 二.安装 官网下载Qt安装包和 Qt for VS addin,分别安装,并配置. 三.Hello World 接下来用Qt框架来完成第一个程序 首先打开VS,创建一个Qt工程 熟悉的C++界面,但Qt是有可视化界面的,点击解决方案管理器中的.

QT 学习笔记概述

以下笔记为在看书和实践的过程中的部分记录总结: 0. 窗口布局 1) 支持绝对布局和布局管理器布局; 2) 绝对布局不够灵活.无法自动调整大小,需要手动编写代码调整: 3) 布局管理器管理布局比较灵活.可自动调整管理的其下部件大小.位置: 4) 布局管理器目前有基本布局QBoxLayout(水平布局QHBoxLayout.垂直QVBoxLayout).栅格布局QGridLayout.表单布局QFormLayout.栈布局QStackedLayout: 5) 还有其他的布局,不过一般用于其他目的,

QT学习笔记(14) 定时器类DTimer的使用

一. 在前面的学习笔记中,我们已经学习定时器事件http://www.cnblogs.com/blog-ccs/p/7445323.html 现在,我们学习QTimer定时器类,比较优劣. 二.示例代码 widget.h 1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QTimer>//定时器对象 6 7 namespace Ui { 8 class Widget; 9 } 10 11