day3 QT对话框

news/2024/11/23 1:34:04/

目录

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.ppmy.cn/news/706904.html

相关文章

全景影像技术研发公司Insta 360获数亿元级C+轮融资,计划A股上市...

3月20日消息&#xff0c;全景影像技术研发公司Insta360获得数亿元级C轮融资&#xff0c;本轮投资方包括麦高控股、华金资本、朗玛峰创投等。本轮资金将用于产品研发&#xff0c;市场营销与渠道拓展&#xff0c;提升品牌影响力。 此前&#xff0c;Insta360曾在2016年3月获得迅雷…

全景影像技术研发公司Insta 360获数亿元级C+轮融资,计划A股上市

3月20日消息&#xff0c;全景影像技术研发公司Insta360获得数亿元级C轮融资&#xff0c;本轮投资方包括麦高控股、华金资本、朗玛峰创投等。本轮资金将用于产品研发&#xff0c;市场营销与渠道拓展&#xff0c;提升品牌影响力。 此前&#xff0c;Insta360曾在2016年3月获得迅雷…

EasyDSS流媒体服务器成功实现5G超高清8k视频RTMP/HLS(m3u8)直播过程中遇到的一些坑(insta360 4k/8k直播)

自从2019年春节回来之后&#xff0c;5G直播就如雨后春笋一般&#xff0c;各大公司和运营商都在推行5G 4K、8K高清直播&#xff0c;当然&#xff0c;这也就卖火了insta360这款设备了&#xff0c;各家都在用这个设备做360全景高清4k、8k直播&#xff0c;我们对接的有移动、联通、…

Insta360计算机视觉算法实习生 面经

整个面试下来的感受是这家公司很注重python底层知识的理解 问到的python语法知识有 python装饰器()的用法&#xff0c;这个完全没了解过python定义一个类时怎么定义私有变量Python怎么样不实例化一个类而使用类内的函数 工程经验 是否遇到过训练到一半卡住的原因&#xff0c…

360全景单张图片HDR处理方法教程

HDR是360全景摄影中常用的图片处理技术。如果使用单张图片进行色调映射处理&#xff0c;推荐使用RAW格式文件。由于其有着比jpeg格式文件更大的动态范围&#xff0c;经过色调映射处理的图片虽然称不上真正的HDR色调映射图像&#xff0c;而且效果也差强人意。尽管如此&#xff0…

sqlserver management studio 2014 升级2016_画质提升音质更佳:Insta360影石ONE R迎来最强升级...

9月14日&#xff0c;Insta360影石ONE R相机上市8个月后迎来最强升级&#xff0c;从画质、音质、操作流程等层面为用户带来更佳使用体验&#xff0c;用户可前往苹果App Store和安卓应用商店下载最新版本APP&#xff0c;并且可前往Insta360影石官网下载页获取Studio Beta版本以及…

VR界创业明星!Insta360又获苏宁集团战略投资

Insta360将借苏宁线下销售渠道以及线上平台&#xff0c;进一步加快全景相机市场的拓展。 Insta360&#xff0c;一家成立于2014年的虚拟现实创业公司&#xff0c;旗下的产品Insta360 4K beta可应用于旅游、房地产、新闻、体育赛事、大型活动等多个领域&#xff0c;其新品消费级V…