首页 > 其他分享 >【QT】Qt窗口(下)

【QT】Qt窗口(下)

时间:2024-10-31 08:48:56浏览次数:6  
标签:窗口 QT parent 对话框 QString const MainWindow Qt

在这里插入图片描述

个人主页~

Qt窗口(下)~


Qt窗口

五、对话框

2、Qt内置对话框

Qt内置的所有对话框全部继承自QDialog

(1)Message Box

消息对话框是非常常见常用的界面元素,主要用于为用户提示重要信息,强制用户进行选择操作
QMessageBox类中定义了静态成员函数有四个

函数作用
Question用于正常操作过程中的提问
Information用于报告正常运行信息
Warning用于报告非关键错误
Critical用于报告严重错误
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //创建一个按钮和消息对话框,按钮用来呼唤对话框
    QPushButton* btn = new QPushButton("消息对话框",this);
    QMessageBox* mb = new QMessageBox(this);
	//设置对话框基本信息
    mb->setWindowTitle("警告");//标题
    mb->setText("错误信息");//文本内容
    mb->setIcon(QMessageBox::Question);//图标设置
    mb->setStandardButtons(QMessageBox::Ok|QMessageBox::No|QMessageBox::Help);
    //按钮设置

    connect(btn,&QPushButton::clicked,[=]()
    {
        mb->show();
    });
}

<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="8nyduzqy-1729871751156" src="https://live.csdn.net/v/embed/431072"></iframe>

messagedialog

(2)QColorDialog

颜色对话框功能就是让用户选择颜色

方法说明
QColorDialog(QWidget* parent = nullptr)创建对象的同时设置父对象
QColorDialog(const QColor& initial,QWidget* parent = nullptr)创建对象的同时通过QColor对象设置默认颜色和父对象
void setCurrentColor(const QColor& color)设置当前颜色对话框
QColor currentColor() const获取当前颜色对话框
QColor getColor(const QColor& initial = Qt::white, QWidget* parent = nullptr, const QString& title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions())打开颜色选择对话框,并返回一个QColor对象
void open((QObject* receiver,constchar* member)打开颜色对话框

其中倒数第二个函数,initial是设置默认颜色,parent是设置父对象,title是设置对话框标题,options是设置选项

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
	//创建按钮和颜色对话框
    QPushButton* btn = new QPushButton("颜色对话框",this);

    QColorDialog* cd = new QColorDialog(this);
	//连接两者
    connect(btn,&QPushButton::clicked,[=]()
    {
        cd->setCurrentColor(QColor(100,100,100));
        cd->open();
    });
}

<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="kNQxutj9-1729960004487" src="https://live.csdn.net/v/embed/431296"></iframe>

colordialog

(3)QFileDialog

方法说明
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())打开一个文件
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr,QFileDialog::Options options = Options())打开多个文件
QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())保存文件

parent:父亲
caption:对话框标题
dir:默认打开路径
filter:文件过滤器

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPushButton* btn = new QPushButton("按钮",this);

    QFileDialog* fd = new QFileDialog(this);
    connect(btn,&QPushButton::clicked,[=]()
    {
        QString str = fd->getOpenFileName(this,
        "文件","C://Users//14725//Desktop","*.jpg");
    });

}

在这里插入图片描述

(4)QFontDialog

**MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
	
    QPushButton* btn = new QPushButton("字体对话框",this);

    connect(btn,&QPushButton::clicked,[=]()
    {
       bool flag;
       //getFont的第一个参数必须为bool类型
       QFont font = QFontDialog::getFont(&flag,QFont("华文行楷",36));
    });
}

在这里插入图片描述

(5)QInputDialog

方法说明
double getDouble(QWidget* parent,const QString& title, const QString& label, double value =0,doublemin=-2147483647,doublemax=2147483647,intdecimals=1,bool* ok=nullptr, Qt::WindowFlags flags = Qt::WindowFlags());双精度浮点型输⼊数据对话框
int getInt (QWidget* parent, const QString& title, const QString& label, int value = 0, int min=-2147483647,intmax=2147483647,intstep=1,bool* ok=nullptr,Qt::WindowFlags flags = Qt::WindowFlags());整型输⼊数据对话框
QString getItem (QWidget* parent, const QString& title, const QString& label, const QStringList& items, int current = 0, bool editable = true, bool* ok =nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) ;选择条⽬型输⼊数据框

parent:父亲
title:对话框标题
label:对话框标签
items:可供选择的条目

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

    QPushButton* btn = new QPushButton("输入对话框",this);
    QInputDialog* id = new QInputDialog(this);
    connect(btn,&QPushButton::clicked,[=]()
    {
    	//参数2是输入对话框名,参数3是输入对话框内容
        int i = id->getInt(this,"输入框","int型");
    });
}

在这里插入图片描述


今日分享就到这了~

在这里插入图片描述

标签:窗口,QT,parent,对话框,QString,const,MainWindow,Qt
From: https://blog.csdn.net/s_little_monster/article/details/143230210

相关文章

  • QT:QThread 使用案例
    问题描述:软件界面打开之前要初始化相机和机械臂,并且在执行扫描点云,配准等操作时,只能单线程运行,导致运行效率低。解决:使用QThread首先写一个类如task,成员函数执行的是需要在子线程运行。task.h:task类需要继承QObject类,startadd()函数内容在子进程运行。#ifndefTASK_H#de......
  • C++算法练习-day26——239.滑动窗口的最大值
    题目来源:.-力扣(LeetCode)题目思路分析题目:给定一个整数数组 nums 和一个整数 k,请找出该数组中所有长度为 k 的子数组中的最大元素,并返回这些最大元素组成的数组。思路:滑动窗口:这是一个典型的滑动窗口问题,其中窗口的大小为 k。我们需要遍历整个数组,同时保持一......
  • 239. 滑动窗口最大值(难)
    目录题目法一、暴力枚举法二、双端队列题目给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。法一、暴力枚举遍历数组,获取每个窗口的子数......
  • 手把手搭建自己私有的MQTT服务器,完成设备上云
    手把手搭建自己私有的MQTT服务器,完成设备上云原创ds小龙哥DS小龙哥嵌入式技术资讯 2024年09月19日13:21重庆5人听过一、前言在众多物联网通信协议中,MQTT(MessageQueuingTelemetryTransport)因其轻量、高效的特点而被广泛应用于各种物联网场景。它不仅能够满足设备低功......
  • qt的c++环境配置和c++基础【正点原子】嵌入式Qt5 C++开发视频
    QTc++环境配置和c++基础c++环境配置和工程创建  1.配置步骤  2.新建qt工程目录和工程  3.重启qt后打开最近的qt项目c++基础-类和对象  1.什么是类和对象    A.类的定义    B.类的结构表示    C.类的访问权限    D.对象的定义    E.类和......
  • 【Python入门】7天速成Python桌面应用开发高手,WxPython vs PyQt:谁更胜一筹?
    ......
  • QT creator中cmake管理项目,如何引入外部库(引入Eigen库为例)
    在Eigen的官网下载压缩包[点我进入]解压到当前项目的根目录(当然你也可以自己选择目录)在当前项目的CMakeLists.txt任意位置加入这句话include_directories(${CMAKE_SOURCE_DIR}/eigen)这时候就是测试是否引入成功,在main.cpp中加入#include<Eigen/Dense>,鼠标悬停如果出现路......
  • Qt开发:如何使用QPainter进行2D图形的绘制
    文章目录一、QPainter简介二、如何使用QPainter绘图三、QPainter的绘图区域四、QPainter的常用方法五、QPen的主要功能和属性六、QBrush的主要功能和属性七、QFont的主要功能和属性一、QPainter简介QPainter是Qt框架中的一个强大的绘图类,用于在各种设备上进行2D......
  • pyqt5实现nii文件叠加显示
            最近在做一个医学影像处理的项目,要求是使用pyqt5实现T1.nii文件和靶区文件的叠加显示。之前有web前端开发和一些python基础,pyqt5和医学影像文件(nii格式文件)处理都是第一次接触。趁着十一假期比较清闲,记录一下该功能实现的过程(pyqt5相关基础就不说了,B站很多新......
  • 树莓派CM4(五):搭建QT开发环境
    1.软件版本Ubuntu20.04QT5.12.122.参考链接https://zhuanlan.zhihu.com/p/138021025?utm_id=0https://zhuanlan.zhihu.com/p/137745265https://bugreports.qt.io/browse/QTBUG-62216https://www.tal.org/tutorials/building-qt-512-lts-raspberry-pi-raspberry-......