day3 QT对话框

目录

QDialog

标准对话框(Standard Dialogs):

内置对话框(Built-in Dialogs):

自定义对话框(Custom Dialogs)

 示例

myqdialog.h

 widget.h

 myqdialog.cpp

 widget.cpp


QDialog

  • QDialog是QWidget的子类,用于创建对话框。
  • 对话框是一种特殊类型的窗口,通常用于与用户进行交互,提供额外的选项或接收用户的输入。
  • QDialog提供了一些常用的对话框样式,例如消息框、文件选择框、颜色选择框等。
  • 对话框可以自定义,可以根据需要添加自己的控件和逻辑。

标准对话框(Standard Dialogs):

  • 标准对话框是Qt提供的一组常用对话框,用于执行常见的操作,如打开文件、保存文件、选择颜色、选择字体等。
  • 这些对话框具有标准化的用户界面,可以直接使用,无需自定义。

一些常见的标准对话框包括:

  • 文件对话框(QFileDialog):用于选择文件或文件夹。
  • 字体对话框(QFontDialog):用于选择字体样式和大小。
  • 颜色对话框(QColorDialog):用于选择颜色。

内置对话框(Built-in Dialogs):

  • 内置对话框是一些特定功能的对话框,提供了更高级的交互操作,如进度对话框、输入对话框、消息对话框等。
  • 这些对话框具有预定义的样式和功能,可以根据需要进行适当的配置。

一些常见的内置对话框包括:

  • 进度对话框(QProgressDialog):显示任务的进度,并提供取消按钮。
  • 输入对话框(QInputDialog):用于获取用户输入的对话框,可以输入文本、数字、密码等。
  • 消息对话框(QMessageBox):显示一条消息并等待用户操作的对话框。

自定义对话框(Custom Dialogs)

  • 自定义对话框是根据特定需求创建的定制化对话框。
  • 开发者可以通过继承QDialog或其他适合的类,根据需要定义对话框的布局、控件和交互逻辑。

自定义对话框的创建通常涉及以下几个步骤:

  • 创建一个继承自QDialog的自定义对话框类。
  • 在自定义对话框类中定义布局、添加控件和信号槽等内容。
  • 在应用程序中创建自定义对话框对象,并显示对话框。

 示例

myqdialog.h

#ifndef MYQDIALOG_H
#define MYQDIALOG_H#include <QDialog>
#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>class myQDialog : public QDialog
{Q_OBJECT
public:myQDialog();public slots:void ok_pushed(){//ok按下stat为truestat = true;close();}void setpass(bool flag){if(!flag)le1->setEchoMode(QLineEdit::Password);elsele1->setEchoMode(QLineEdit::Normal);}public:static int getstat(){myQDialog a;//a.setFixedSize(100, 100);a.exec();return a.stat;}private:QLineEdit *le, *le1;QPushButton *pb;QCheckBox *ck;bool checked;int stat;  //标志,标志对话框是按下什么结束的};#endif // MYQDIALOG_H

 widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
};#endif // WIDGET_H

 myqdialog.cpp

#include "myqdialog.h"
#include <QFormLayout>myQDialog::myQDialog()
{le = new QLineEdit;le1 = new QLineEdit;pb = new QPushButton("登录");ck = new QCheckBox;QFormLayout *fbox = new QFormLayout;fbox->addRow("user", le);fbox->addRow("pawd", le1);fbox->addRow("show password", ck);fbox->addRow("", pb);setLayout(fbox);le1->setEchoMode(QLineEdit::Password); // 设置密码框为密码模式stat = false;connect(pb, SIGNAL(clicked(bool)), this, SLOT(ok_pushed()));connect(ck, SIGNAL(clicked(bool)), this, SLOT(setpass(bool)));}

 widget.cpp

#include "widget.h"
#include <QWidget>
#include <QDialog>
#include "myqdialog.h"Widget::Widget(QWidget *parent): QWidget(parent)
{
#if 0myQDialog a;a.setFixedSize(100, 100);a.exec();if(a.stat)exit(0);#endifint s = myQDialog::getstat();if (!s)exit(0);
}Widget::~Widget()
{}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单位列表单列出来,假(封装)组件

效果图&#xff1a; 因为每个页面都用到这个单位&#xff0c;所以把单位列表单列出来&#xff0c;假装是个封装的组件&#xff0c;在其他页面直接用。 源码&#xff1a; <template><div style"height: 48rem;overflow-y: scroll"><h4>单位列表<…

九、HTML中的定位

1、定位 position static 默认值 没有使用定位 relactive 相对定位 absolute 绝对定位 fixed 锚定 标准文档流 标准文档流 从上到下&#xff0c;从左向右&#xff0c;依次显示网页中的每一个元素 元素分类 行内元素 依次一个挨着一个显示 块级元素 独占一行 static 定位 以…

Android 曲线覆盖图

看图 样例代码 layout.xml <com.XXXXX.utils.GraphBendLineandroid:id"id/ghost_view"android:layout_width"200dp"android:layout_height"200dp"android:layout_margin"40dp"app:node_bar_line_color"#F9FEFD"app:nod…

django-vue-admin curd_demo 快速crud教程

django-vue-admin curd_demo 快速crud教程 快速CRUD开发教程&#xff1a;https://bbs.django-vue-admin.com/article/9.html 如何在 env.py 文件配置Mysql数据库&#xff1a;https://bbs.django-vue-admin.com/question/4.html 导入导出配置教程&#xff1a;https://bbs.djang…

Python 中的二维插值

本文展示了如何在 Python 中进行插值&#xff0c;并研究了不同的 2d 实现方法。 我们将讨论用于双变量插值的有用函数&#xff0c;例如 scipy.interpolate.interp2d、numpy.meshgrid 和 Python 中使用的用于平滑/插值 (RBF) 的径向基函数。 我们将使用 SciPy 和 Numpy 库实现插…

OpenCV读取一张深度图像并显示

#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp> #include

安全 --- http报文包详解及burp简单使用

HTTP HTTP&#xff08;超文本传输协议&#xff09;是今天所有web应用程序使用的通信协议。最初HTTP只是一个为了获取基本文本的静态资源而开发的简单协议&#xff0c;后来对其进行扩展和利用&#xff0c;使其发展为能够支持如今常见的复杂分布式应用程序。 &#xff08;1&…

【c++】并行编程:cuda入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍cuda入门。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#x1f95e…

能源结构变更图,传统能源结构对比新兴能源

以传统的能源&#xff08;煤、天然气&#xff09;提供能源&#xff0c;到新兴能源 目前新兴能源以 太阳能&#xff0c;风能为主以及其它行业&#xff0c; 一类企业以新兴能源这种为主&#xff0c;核心是能源接收&#xff0c;以及储存能源&#xff0c;存储通常两种方式&#x…

UE5、CesiumForUnreal接入XYZ格式地图瓦片如高德地图、OSM、ArcGIS等

文章目录 1.实现目标2.实现过程2.1 XYZ与TMS对比2.1 cesium-native改造2.3 CesiumForUnreal插件改造2.4 XYZ瓦片加载测试3.参考资料1.实现目标 通过改造cesium-native和cesiumforunreal插件,参考tms的栅格地图瓦片加载逻辑,实现在UE5、CesiumForUnreal中接入XYZ格式的地图瓦片…

mysql练习---对表进行插入、更新与删除

环境&#xff1a; 第一题 (1) 创建表 create table pet( name varchar(20) not null comment 宠物名称, owner varchar(20) comment 宠物主人, species varchar(20) not null comment 种类, sex char not null comment 性别, birth year not null comment 出生日期, death …

游戏引擎的cpu/gpu粒子系统设计思想

开篇 网上有很多篇粒子系统源码解析&#xff0c;但是只是简单的接口罗列&#xff0c;没有从最原理出发去讲清楚粒子系统的来龙去脉&#xff0c;我将从粒子系统的本质去讲清楚它的设计理念&#xff0c;当理解了它的理念以后&#xff0c;很多粒子遇到的问题就会迎刃解决了&#…