Qt之对话框(QDialog)

news2025/1/22 21:08:20

文章目录

  • 一、对话框的概念
  • 二、与QWidget的区别
  • 三、对话框2种显示方法
  • 四、对话框返回值的概念
  • 本节示例


提示:以下是本篇文章正文内容,下面案例可供参考

一、对话框的概念

对话框是和用户简短交互的一种窗口。如:登录界面,关于界面,选择文件界面…
他不能放在在其他的Qt组件里面。

二、与QWidget的区别

我们可以在main.cpp中写下面的代码:

实验1:

#include <QApplication>
#include <QDialog>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;
    QDialog d(&w);

    w.setWindowTitle("QWidget");//设置该窗口标题
    d.setWindowTitle("QDialog");

    w.show();
    d.show();

    return a.exec();
}

我们可以看到,QDialog指定了父类,可还是出现了2个窗口,可以按正常逻辑,应该是出现一个窗口QWidget啊,可现在却出现了QDialog。

实验2:

#include <QApplication>
#include <QDialog>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QDialog d;
    QWidget w(&d);

    w.setWindowTitle("QWidget");
    d.setWindowTitle("QDialog");

    w.show();
    d.show();

    return a.exec();
}

这次我们让QWidget放到QDialog里面,就会发现,只有QDialog。那么QWidget就被放在QDialog里面了,因为他和我们QDialog的颜色一样,所以看不到

三、对话框2种显示方法

1、使用exec()函数显示:模态对话框
特点:显示后无法与父窗口交互。是一种阻塞试的调用。
阻塞试是什么意思:必须要点关闭按钮/使用里面的一个函数,等下我们会讲。
使用场景:必须要用户选择

2、使用show()函数显示:非模态对话框
特点:显示后独立存在可以在同时与父组件交互。是一种非阻塞式的对话框方式
使用场景:和模态对话框相对的

小技巧:
模态对话框一般在栈上创建。
非模态对话框一般在堆上创建。
非模态对话框需要指定Qt::WA_DeleteOnClose。原因:因为无法得知他的关闭时间,他又是在堆上创建的,所以当我们指定了这个东西的时候,关闭时,他自动delete该窗口。

四、对话框返回值的概念

只有模态对话框才有返回值。
使用dene(int i)返回

一般使用下面两个作为参数:
QDialog::Accepted用户操作成功
QDialog::Rejectd用户操作失败

本节示例

使用Qt设计师类创建一个QDialog。
UI界面如下:
在这里插入图片描述

点击登录打印用户名和密码,点击取消退出.

提示:取消可使用槽函数close()

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(Login()));
}

void Dialog::Login()
{
    qDebug() << ui->lineEdit->text();
    qDebug() << ui->lineEdit_2->text();
}

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

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;

private slots:
    void Login();
};

#endif // DIALOG_H

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能-可观测数据、量化指标、性能问题、压测目标

可观测的数据数据指标 服务应用&#xff1a;CPU利用率、内存、ygc次数接口&#xff1a;核心关注接口的请求响应时间&#xff08;平均响应时间、P90、P95&#xff0c;核心关注后面2个&#xff09;、慢请求情况数据库&#xff1a;主要关注CPU使用率、内存使用率Redis&#xff1a…

前端组件库自定义主题切换探索-02-webpack-theme-color-replacer webpack 的实现逻辑和原理-01

本文来研究写webpack-theme-color-replacer webpack 的实现逻辑和原理。 上一篇我们讲过&#xff0c; webpack-theme-color-replacer webpack 基本思路就是&#xff0c;webpack构建时&#xff0c;在emit事件&#xff08;准备写入dist结果文件时&#xff09;中&#xff0c;将即将…

Linux ALSA 之五 ALSA Proc Info

ALSA Proc Info一、概述二、Proc Files of Alsa Driver1、/proc/asound/xxx 简述2、创建 /proc/asound 目录树2.1 /proc/asound/version 文件2.2 /proc/asound/devices 文件2.3 /proc/asound/cards 文件2.4 /proc/asound/cardx 目录2.5 /proc/asound/pcm 文件一、概述 Linux系…

以“辛”为鉴,直播电商如何“知兴替”?

直播电商行业近年来创造了一个又一个销售神话。辛选2022年双11期间&#xff0c;18场直播销售额破亿。罗永浩在淘宝的首秀&#xff0c;6小时带货2亿元。直播间内外似乎一片繁华&#xff0c;但与此同时&#xff0c;也有许多曾经创造了带货奇迹的主播被市场淘汰&#xff0c;淡出视…

【笔记:第2课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

文章目录前言来源正文小结前言 创作开始时间&#xff1a;2023年1月9日20:11:06 如题&#xff0c;学习一下RISC-V。 来源 https://www.bilibili.com/video/BV1Q5411w7z5?p2&vd_source73a25632b4f745be6bbcfe3c82bb7ec0 正文 计算机硬件组成&#xff1a; 总线CPU&…

迷宫问题 | 深度优先

目录 一、说明 二、步骤 三、代码 四、结果 一、说明 什么是深度优先&#xff1f; DFS即Depth First Search&#xff0c;深度优先搜索属于图算法的一种&#xff0c;是一个针对图和树的遍历算法&#xff0c;利用深度优先搜索算法可以产生目标图的相应拓扑排序表&#xff0c…

身兼数据科学家和自由职业者,算算我在2022赚了多少钱?

2022年,我作为自由职业者数据科学家赚了多少钱&#xff1f;长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩大家好&#xff0c;首先&#xff0c;我已经等了很久了。2…

保姆级 | 最新Burpsuite安装配置

文章目录 0x00 前言 0x01 环境说明 0x02 准备工作 0x03 安装JDK 0x04 配置JDK环境 0x05 Burpsuite安装 0x06 Burpsuite环境配置 0x07 Burpsuite设置代理 0x08 Burpsuite使用验证 0x09 总结 0x00 前言 Burp Suite 是用于攻击 web 应用程序的集成平台&#xff0c;包含了…

mongodb 中做 join 的方法

【问题】Imagine you have a collection for posts, and each of these posts has the attribute userid: ObjectId( ), where ObjectID is referencing a document in the Users collection.How would you go about retrieving the user information (in this case, the user …

GC耗时高,原因竟是服务流量小?

简介 最近&#xff0c;我们系统配置了GC耗时的监控&#xff0c;但配置上之后&#xff0c;系统会偶尔出现GC耗时大于1s的报警&#xff0c;排查花了一些力气&#xff0c;故在这里分享下。 发现问题 我们系统分多个环境部署&#xff0c;出现GC长耗时的是俄罗斯环境&#xff0c;…

高校舆情监控系统建设(TOOM)如何做好教育行业舆情监控方案?

高校作为高密度学生聚集地&#xff0c;舆情管理上&#xff0c;需要保持高度的警惕性。高校中大学生是活跃在互联网上的重要群体&#xff0c;他们作为文化水平较高、思维较活跃的特殊群体&#xff0c;其网络中的言论合集往往会引发社会关注。高校舆情监控系统建设(TOOM)如何做好…

Sapped of vitality 生机已被耗尽 | 经济学人社论高质量双语精翻

选自TE20221217&#xff0c;leaders The global economy&#xff1a;Sapped of vitality 世界经济&#xff1a;生机已被耗尽 Why are the rich world’s politicians giving up on economic growth? 为什么发达国家的政客们不再追求经济增长目标&#xff1f; The prospect of …

智能音箱app开发-广州app开发定制

科技高速发展&#xff0c;智能产品遍地都是。日常生活都是智能化时代&#xff0c;智能音箱app也开始被开发出来。为用户提供便捷的服务&#xff0c;优化体验。 智能音箱app开发特点 一&#xff1a;搭建快速 线上渠道在各个行业中不可或缺的&#xff0c;因为线上平台不管是流量…

nginx学习笔记3(小d课堂)

nginx访问日志的作用&#xff1a; 我们先去查看一下我们的nginx.conf文件&#xff1a; BAT大厂应用运维平台案例统计 awk 默认以空格进行分隔。 {print $1} 只取第一个属性 sort -n排序 sort -rn倒序 uniq -c去重 head -n 100取前100个。 自定义日志统计接口性能 我们修改完…

上半年要写的博客文章28

上半年要写的博客文章21 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个…

基于ESP32的蓝牙刷屏器自动点击器的制作

ESP32模块的选型&#xff1a; 这里是利用蓝牙连接手机来做点击器或刷屏器&#xff0c;ESP8266只有WIFI而ESP32有WIFI和蓝牙&#xff0c;所以选择ESP32模块。 ESP32模块可以选择ESP32-NodeMCU: 或ESP32-MiniKit: 这里使用的是ESP32 MINI KIT&#xff0c;Arduino环境下烧录选择如…

Nginx搭建Web服务器

环境&#xff1a; CentOS 7.2.1511 一、搭建静态web服务器 访问基本的静态页面&#xff08;基于IP访问&#xff09; 1.使用源码包编译安装nginx 启动ngin 直接在服务器测试访问&#xff1a; 访问nginx Web页面实现用户认证 修改nginx配置文件 2.生成密码文件&#xff…

64. 方法的值的传递及调用类内部的属性、方法

64. 方法的值的传递及调用类内部的属性、方法 文章目录64. 方法的值的传递及调用类内部的属性、方法1. 知识回顾2. 值的传递3. 没有值4. 需要向方法传递值5. 调用类内部的属性和方法6. 综合代码7. 类在爬虫中的应用7.1 创建类7.2 创建对象7.3 调用方法7.4 第2次调用方法7.5 第2…

MSE ZooKeeper 数据导入导出功能上线

作者&#xff1a;草谷 背景 MSE 提供了托管版的 ZooKeeper&#xff0c;拥有比自建开源 ZooKeeper 稳定性更高的SLA&#xff0c;同时管控面提供了丰富的服务自治功能。赶在2022年的岁末&#xff0c;MSE ZooKeeper 上线了一个非常实用的功能-数据导入导出功能&#xff0c;彻底解…

Mybatis自动生成增删改查代码

GitHub项目地址 Gitee项目地址 使用 mybatis generator 自动生成代码&#xff0c;实现数据库的增删改查。 1 配置Mybatis插件 在pom文件添加依赖&#xff1a; <plugins> <plugin><groupId>org.mybatis.generator</groupId><artifactId>myba…