首页 > 其他分享 >qt对话框

qt对话框

时间:2022-10-22 18:24:05浏览次数:56  
标签:ok qt 对话框 tr ui QMessageBox lineEdit

标准对话框

常见的5个对话框:消息对话框、文件对话框、字体对话框、输入对话框、颜色对话框

1、标准消息对话框

QT的QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。

需包含相关头文件

总的来说,标准消息对话框QMessageBox类有六种消息框。

消息严重级别:

1.1 question
QMessageBox::question(this,
           tr("弹窗标题"),
           tr("弹窗内容"),
           QMessageBox::Ok | QMessageBox::Cancel, //添加确认键和取消键
           QMessageBox::Ok);

1.2 information

Information消息框具有和Question消息框一样的参数和返回值,其使用方法和解释都是一样的。

QMessageBox::information(this,
        tr("Information消息框标题"),
        tr("这是Information消息框的内容。"),
        QMessageBox::Ok | QMessageBox::Cancel,
        QMessageBox::Ok);

1.3 warning
QMessageBox::warning(this,
        tr("Warning消息框"),
        tr("您修改的内容还未保存,是否要保存对文档的修改?"),
        QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
        QMessageBox::Save);

1.4 Critical

在调用时,如果不指定后两个参数,即设置按钮和设置按下时的默认按钮。系统会默认指定。(上述四个消息框都一样。)

QMessageBox::critical(this, tr("Critical消息框"), tr("这是一个Critical消息框!"));

1.5 About
QMessageBox::about(this, tr("About消息框"), tr("这是一个About消息框测试!"));

1.6 AboutQt

AboutQt消息框显示了应用程序正在使用的Qt的版本号等信息。
它只能指定标题。

QMessageBox::aboutQt(this, tr("About Qt消息框"));

2、标准文件对话框

2.1、获取文件夹
void Widget::on_pushButton_9_clicked()
{
    QString paht=QFileDialog::getExistingDirectory(this,"选文件夹",
                                                   "D:/");//起始路径
    if(!paht.isEmpty())
    {
        ui->lineEdit_7->setText(paht);
    }
}
2.2、获取一个文件
void Widget::on_pushButton_10_clicked()
{
    QString paht=QFileDialog::getOpenFileName(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All File (*);;Text Files (*.txt)");//筛选条件
    if(!paht.isEmpty())
    {
        ui->lineEdit_8->setText(paht);
    }
}
2.3、获取多个文件
void Widget::on_pushButton_11_clicked()
{
    QStringList fileName=QFileDialog::getOpenFileNames(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All Files (*);;Text Files (*.txt)");//筛选条件

    if(!fileName.isEmpty())
    {
        for(int i=0;i<fileName.size();i++)
            ui->textBrowser->append(fileName[i]);
    }
}
2.4、保存文件
void Widget::on_pushButton_12_clicked()
{
    //保存文件,不会给你创建文件然后保存,创建文件的代码得自己写,只会给你保存文件的路径
    QString paht=QFileDialog::getSaveFileName(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All File (*);;Text Files (*.txt)");//筛选条件
    if(!paht.isEmpty())
    {
        ui->lineEdit_10->setText(paht);
    }
}

3、标准字体对话框

void Widget::on_pushButton_8_clicked()
{
    bool ok;
    QFont font=QFontDialog::getFont(&ok,QFont("黑体"),//默认选择字体
                                    this,"选择字体");
    if(ok)
    {
        ui->lineEdit_6->setText(font.key());//字体的名字
        ui->lineEdit_6->setFont(font);
    }
}

4、标准颜色对话框

void Widget::on_pushButton_7_clicked()
{
    QColor color=QColorDialog::getColor(Qt::red,//默认选择颜色
                                        this,
                                        "获取颜色");
    if(color.isValid())
    {
        ui->lineEdit_5->setText(color.name());  //是显示的十六进制(HTML形式的)
        //设置背景颜色,(用样式表更方便)
        QPalette pa=ui->lineEdit_5->palette();
        pa.setColor(QPalette::Base,color);
        ui->lineEdit_5->setPalette(pa);
    }
}

5、标准输入对话框

QInputDialog 有多种输入方式,下面介绍几种常用的

1、单行字符串输入
 bool ok;
    QString text=QInputDialog::getText(this,"提示","输入字符串",
                                       QLineEdit::Normal,//QLineEdit
                                       "默认显示内容",
                                       &ok
                                        );
    if(ok&&!text.isEmpty())
    {
        ui->lineEdit_4->setText(text);
    }
2、整数输入

点击按钮,在弹出的窗口选择数值,点击确定,lineEdit显示对应的值

void Widget::on_pushButton_clicked()
{
    bool ok;
    int i = QInputDialog::getInt(this,"提示","获取数字",
                                 15,//默认值
                                 0,//最小值
                                 100,//最大值
                                 1,//步长:
                                 &ok//用来确定是否点了 确定
                                 );
    if(ok)
    {
        ui->lineEdit->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
    }

}

3、浮点数输入
void Widget::on_pushButton_2_clicked()
{
    bool ok;
    double i = QInputDialog::getDouble(this,"提示","获取小数",
                                    15.36,//默认值
                                    0,//最小值
                                    100,//最大值
                                    5,//显示小数点后几位
                                    &ok//用来确定是否点了 确定
                                    );

    if(ok)
    {
        ui->lineEdit_2->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
    }
}
4、列表框选择输入
void Widget::on_pushButton_3_clicked()
{
    QStringList items;
    items<<"字符串1"<<"字符串2"<<"字符串3";
    bool ok;
    QString item = QInputDialog::getItem(this,"提示","获取字符串",
                                         items,//默认值
                                         0,//默认选中第几个
                                         true,//内容是否可修改
                                         &ok//用来确定是否点了 确定
                                         );

    if(ok&&!item.isEmpty())
    {
        ui->lineEdit_3->setText(item);
    }
}
5、多行文本
 bool ok;
    QString text=QInputDialog::getMultiLineText(this,"提示","输入多行字符串","默认显示内容",&ok);
    if(ok&&!text.isEmpty())
    {
        ui->textEdit->setText(text);
    }

标签:ok,qt,对话框,tr,ui,QMessageBox,lineEdit
From: https://www.cnblogs.com/Mr-black-7/p/16816849.html

相关文章

  • qt圆形图像剪切
     剪切代码:Rectangle{id:idRectRoundwidth:250height:250radius:width/2......
  • Qt从文件中读取配置
    #ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#include<QString>QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidge......
  • QT槽函数
    #ifndefWIDGET_H#defineWIDGET_H#include<QWidget>QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpubl......
  • Qt 5.15.2 QTextEdit无法设置新字体的处理方式
    首发于我的个人博客:xie-kang.com博客内有更多文章,欢迎大家访问原文地址在使用QT5.15.2开发的过程中碰到了件怪事,下列代码无法给QTextEdit选中的文字设置字体:QTextCur......
  • Qt Windows上实现毛玻璃效果
    首发于我的个人博客:xie-kang.com博客内有更多文章,欢迎大家访问原文地址前言:很多人看到这个需求的第一想法都是录制软件窗口后的桌面内容,并且加上个高斯模糊就能实现了......
  • 想到一种用json描述Qt弹性布局的方式
    规则:列表第一项描述 QHBox or QVBox 第二项描述是否可拉伸,也就是QBox or QSplitter列表可嵌套 渲染:deffun(self,ui):ifui[0]=="H":......
  • SpringBoot集成MQTT的步骤和注意事项
    最近项目用到了mqtt,所以记录下SpringBoot集成MQTT的步骤和注意事项,整理一下知识,方便自己和他人。一、pom文件里引入maven依赖jar包<dependency><groupId>org.sprin......
  • Linux 下 Qt Creator 的安装,并使用它开发你的第一个 Qt 项目全过程
    Linux下QtCreator的安装使用       Qt以其开源,免费,完全面向对象(很容易扩展),允许真正的组件编程以及可移植跨平台等诸多优势得到越来越多的开发人员的青睐。QtC......
  • MQTT云台如何助力分布式农村污水处理的远程管理
    随着城市化进程的推进,农村污水治理是新农村建设的重要内容。未经处理的农村生活污水排放到生态水环境中将会造成污染,进而影响居民身体健康。然而,在污水处理的实时应用,存在管......
  • QT再学习【2】:图形视图Graphics View
    一、GraphicsView框架结构的主要特点(1)在GraphicsView框架结构中,系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能。(2)GraphicsView支持事件传播体系结......