前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【QT】Qt窗口(下)

【QT】Qt窗口(下)

作者头像
s-little-monster
发布2024-11-01 07:59:05
发布2024-11-01 07:59:05
9600
代码可运行
举报
运行总次数:0
代码可运行

五、对话框

2、Qt内置对话框

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

(1)Message Box

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

函数

作用

Question

用于正常操作过程中的提问

Information

用于报告正常运行信息

Warning

用于报告非关键错误

Critical

用于报告严重错误

代码语言:javascript
代码运行次数:0
复制
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();
    });
}

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是设置选项

代码语言:javascript
代码运行次数:0
复制
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();
    });
}

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:文件过滤器

代码语言:javascript
代码运行次数:0
复制
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
代码语言:javascript
代码运行次数:0
复制
**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:可供选择的条目

代码语言:javascript
代码运行次数:0
复制
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型");
    });
}

今日分享就到这了~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 五、对话框
    • 2、Qt内置对话框
      • (1)Message Box
      • (2)QColorDialog
      • (3)QFileDialog
      • (4)QFontDialog
      • (5)QInputDialog
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档