Qt知识笔记(五)—— 常用窗口

基类QWidget

QWidget 类是所有窗口类的父类 (控件类是也属于窗口类), 并且 QWidget 类的父类的 QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收。其API可以查阅Qt助手。

QMainWindow

QMainWindow 是标准基础窗口中结构最复杂的窗口。提供了菜单栏 , 工具栏 , 状态栏 , 停靠窗口。

菜单栏:只能有一个,位于窗口的最上方
工具栏:可以有多个,默认提供了一个,窗口的上下左右都可以停靠状态栏:只能有一个,位于窗口最下方
停靠窗口:可以有多个,默认没有提供,窗口的上下左右都可以停靠

对话框基类QDialog

对话框类是 QWidget 类的子类,处理继承自父类的属性之外,还有一些自己所特有的属性,有模态和非模态。
模态窗口是独占的活动窗口,非模态窗口不是独占的活动窗口,是可以和其它窗口进行切换的。

// 模态显示窗口
[virtual slot] int QDialog::exec();
// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Accepted
[virtual slot] void QDialog::accept();
// 隐藏模态窗口, 并且解除模态窗口的阻塞, 将 exec() 的返回值设置为 QDialog::Rejected
[virtual slot] void QDialog::reject();

下面介绍QDialog的子类

消息对话框QMessageBox

通过这个类可以显示一些简单的提示框,用于展示警告、错误、问题等信息。

文件对话框QFileDialog

通过这个类可以选择要打开或保存的文件或者目录。具体API查阅Qt助手,其中API有个过滤器参数
filter: 在对话框中只显示满足条件的文件, 可以指定多个过滤器, 使用 ;; 分隔

样式举例:
Images (*.png .jpg)
Images (
.png .jpg);;Text files (.txt)

字体对话框QFontDialog

通过这个类可以得到一个进行字体属性设置的对话框窗口。如:

//通过字体对话框选择字体,并将选择的字体设置给当前窗口
bool ok;
QFont ft = QFontDialog::getFont(&ok, QFont("微软雅黑", 12, QFont::Bold), this, "选择字体");
// 将选择的字体设置给当前窗口对象
this->setFont(ft);

颜色对话框QColorDialog

通过这个类可以得到一个选择颜色的对话框窗口。

//颜色对话框
QColor color = QColorDialog::getColor();
//color.isValid()判断选择的颜色是否有效,有效返回true,如果用户选择“取消”则返回false
if(color.isValid()){
...
}

输入型对话框QInputDialog

通过这个类可以得到一个输入对话框窗口,根据实际需求可以在这个输入窗口中输入整形 , 浮点型 , 字符串类型的数据,并且还可以显示下拉菜单供用户选择。

//整形输入框,浮点输入框也类似这样,
int ret = QInputDialog::getInt(this, "年龄", "您的当前年龄: ", 10, 1, 100, 2);
//带下拉菜单的输入框
QStringList items;
items << "苹果" << "橙子" << "橘子" << "葡萄" << "香蕉" << "哈密瓜";
QString item = QInputDialog::getItem(this, "请选择你喜欢的水果", "你最喜欢的水果:", items, 1, false);
//多行字符串输入框
QString info = QInputDialog::getMultiLineText(this, "你好", "您想输入什么呢?", "hhh...");
//单行字符串输入框
QString text = QInputDialog::getText(this, "密码", "请输入新的密码", QLineEdit::Password, "helloworld");

进度条对话框QProgressDialog

通过这个类可以得到一个带进度条的对话框窗口,这种类型的对话框窗口一般常用于文件拷贝、数据传输等实时交互的场景中。具体API查阅Qt助手。
在这里插入图片描述

//创建进度条对话框窗口对象
QProgressDialog *progress = new QProgressDialog("正在拷贝数据...", "取消拷贝", 0, 100, this);
// 初始化并显示进度条窗口
progress->setWindowTitle("请稍后");
progress->setWindowModality(Qt::WindowModal);
progress->show();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值