• qt中对话框


    一、标准文件对话框类(QFileDialog) 
    通过QFileDialog类的几个静态函数可以很方便地定制自己的文件对话框。
    其中,getOpenFileName()静态函数返回用户选择的文件名。但是,当用户选择文件时,若选择“取消”
    (Cancel),则返回一个空串。
    在此仅详细说明getOpenFileName()静态函数中各个参数的作用,其他文件对话框类中相关的静态函数
    的参数有与其类似之处。 
    getOpenFileName()函数形式如下:
     
    例如:
     
    过滤器格式说明:
    名称(文件后缀);;名称(文件后缀) 
    如:"Images (.png .xpm .jpg);;Text files (.txt);;XML files (*.xml)"
     
    枚举类型说明 
    枚举类型:QFileDialog::Options 
    枚举值:
    //如果路径中包含一个文件名,那么这个文件会被选中
    QString QFileDialog::getOpenFileName

     QWidget* parent=0, //标准文件对话框的父窗口
     const QString & caption=QString(),     //标准文件对话框的标题名
     const QString & dir=QString(),              //文件路径
     const QString & filter=QString(),          //显示的文件过滤器
     QString * selectedFilter=0,                    //用户选择的过滤器通过此参数返回
     Options options=0 //选择显示文件名的格式,默认是同时显示目录与文件名
    )
    //只显示图片文件
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open 
    File"),"/home",tr("Images (*.png *.xpm *.jpg)"));

    名称值说明
    QFileDialog::ShowDirsOnly0x00000001只显示目录
    QFileDialog::DontResolveSymlinks0x00000002不解析链接符号,默认解析
    QFileDialog::DontConfirmOverwrite0x00000004
    确认文件重写选项(文件已存
    在的情况),默认有
    QFileDialog::DontUseNativeDialog0x00000010不使用本地文件对话框
    QFileDialog::ReadOnly0x00000020指示模型只读
    QFileDialog::HideNameFilterDetails0x00000040隐藏文件过滤详细信息
    QFileDialog::DontUseSheet0x00000008-
    QFileDialog::DontUseCustomDirectoryIcons0x00000080使用默认的文件图标
    名称值说明
    QColorDialog::ShowAlphaChannel0x00000001允许用户选择alpha值
    QColorDialog::NoButtons0x00000002对话框不显示按钮
    QColorDialog::DontUseNativeDialog0x00000004使用标准对话框
     
    二、标准颜色对话框类(QColorDialog类) 
    getColor()函数是标准颜色对话框QColorDialog类的一个静态函数,该函数返回用户选择的颜色值。
    getColor()函数形式:
     
    枚举类型说明 
    枚举类型:QColorDialog::ColorDialogOptions 
    枚举值:
     
    三、标准字体对话框类(QFontDialog类) 
    getFont()函数是标准字体对话框QFontDialog类的一个静态函数,该函数返回用户所选择的字体。
    getFont()函数形式:
    QColor QColorDialog::getColor
    (
        const QColor& initial=Qt::white, //默认选中颜色
        QWidget* parent=0 //标准颜色对话框的父窗口
        const QString &title = QString(),//标题内容
        ColorDialogOptions options = ColorDialogOptions()//操作类型
    );

    名称值说明
    QFontDialog::NoButtons0x00000001不显示OK和Cancel按钮
    QFontDialog::DontUseNativeDialog0x00000002使用标准对话框
    QFontDialog::ScalableFonts0x00000004显示可缩放字体
    QFontDialog::NonScalableFonts0x00000008显示不可缩放字体
    QFontDialog::MonospacedFonts0x00000010显示单间距字体
    QFontDialog::ProportionalFonts0x00000020显示比例字体
     
    枚举类型说明 
    枚举类型:QFontDialog::FontDialogOptions
    枚举值:
     
    四、标准输入对话框(QInputDialog) 
    标准输入对话框提供四种数据类型的输入,包括字符串、下拉列表框的条目、int数据类型和double数
    据类型。
    1、标准字符串输入对话框 
    标准字符串输入对话框通过QInputDialog类的静态函数getText()完成。
    getText()函数形式如下:
    QFont getFont
    (
        bool* ok, //true:用户点击ok   false:用户点击cancel
        QWidget* parent=0 //标准字体对话框的父窗口
    );       
    QFont getFont
    (
         bool* ok,                //true:用户点击ok   false:用户点击cancel
        const QFont &initial,    //初始Font
        QWidget* parent=0 //标准字体对话框的父窗口
        const QString &title = QString(),    //标题
        FontDialogOptions options = FontDialogOptions()    //选项
    ); 

    名称值说明
    QLineEdit::Normal0正常显示输入字符
    QLineEdit::NoEcho1什么内容都不会显示
    QLineEdit::Password2密码格式显示输入字符
    QLineEdit::PasswordEchoOnEdit3输入时正常显示,输入完成后按照密码格式显示
     
    枚举类型说明 
    枚举类型:QLineEdit::EchoMode 
    枚举值:
    2、标准条目选择对话框 
    标准条目选择对话框是通过QInputDialog类的静态函数getItem()来完成的。
    getItem()函数形式如下:
     
    QString getText
    (
        QWidget* parent, //标准输入对话框的父窗口
        const QString& title, //标准输入对话框的标题名
        const QString& label, //标准输入对话框的标签提示
        QLineEdit::EchoMode mode=QLineEdit::Normal, //指定标准输入对话框中QLineEdit控件的
    输入模式
        const QString& text=QString(), //标准字符串输入对话框弹出时QLineEdit控件中默认出现的
    文字
        bool* ok=0, //true:用户点击ok false:用户点击cancel
        Qt::WindowFlags flags=0 //指明标准输入对话框的窗体标识
        Qt::InputMethodHints inputMethodHints = Qt::ImhNone
    );   
    QString getItem
    (
        QWidget* parent, //标准输入对话框的父窗口
        const QString& title, //标准输入对话框的标题名
        const QString& label, //标准输入对话框的标签提示
        const QStringList& items, //标签列表
        int current=0, //当前的索引
        bool editable=true, //指定QComboBox控件中显示的文字是否可编辑
        bool* ok=0, //true:用户点击ok false:用户点击cancel
        Qt::WindowFlags flags=0 //指明标准输入对话框的窗体标识
    );

    3、标准int类型输入对话框 
    标准int类型输入对话框是通过QInputDialog类的静态函数getInt()来完成的。
    getInt()函数形式如下:
     
    4、标准double类型输入对话框 
    标准double类型输入对话框是通过QInputDialog类的静态函数getDouble()来完成的。
    getDouble()函数形式如下:
     
    五、标准消息对话框(QMessageBox) 
    标准消息对话框提供七种消息的展示,包括Question消息框、Information消息框、Warning消息
    框、Critical消息框、About消息框、About Qt消息框和自定义消息框。
    1、Question消息框(问题) 
    Question消息框使用QMessageBox::question()函数完成,该函数形式如下:
    int getInt
    (
        QWidget* parent, //标准输入对话框的父窗口
        const QString& title, //标准输入对话框的标题名
        const QString& label, //标准输入对话框的标签提示
        int value=0, //指定标准输入对话框中QSpinBox控件的默认显示值
        int min=-2147483647, //指定QSpinBox控件的数值范围
        int max=2147483647,
        int step=1, //指定QSpinBox控件的步进值
        bool* ok=0, //true:用户点击ok false:用户点击cancel
        Qt::WindowFlags flags=0 //指明标准输入对话框的窗口标识
    ); 
    double getDouble
    (
        QWidget* parent, //标准输入对话框的父窗口
        const QString& title, //标准输入对话框的标题名
        const QString& label, //标准输入对话框的标签提示
        double value=0, //指定标准输入对话框中QSpinBox控件默认的显示值
        double min=-2147483647, //指定QSpinBox控件的数值范围
        double max=2147483647,
        int decimals=1, //指定精度
        bool* ok=0, //true:用户点击ok false:用户点击cancel
        Qt::WindowFlags flags=0 //指明标准输入对话框的窗口标识
    ); 
    StandardButton QMessageBox::question
    (
     QWidget* parent, //消息框的父窗口指针
     const QString& title, //消息框的标题栏
     const QString& text, //消息框的文字提示信息
     StandardButtons buttons=Ok, //注(1)

     
    2、Information消息框(消息) 
    Information消息框使用QMessageBox::information()函数完成,该函数形式如下:
     
    3、Warning消息框(警告) 
    Warning消息框使用QMessageBox::warning()函数完成,该函数形式如下:
     
    4、Critical消息框(严重) 
    Critical消息框使用QMessageBox::critical()函数完成,该函数形式如下:
     StandardButton defaultButton=NoButton  //注(2)
    ); 
    /*
    注:
    (1)填写希望在消息框中出现的按钮,可根据需要在标准按钮中选择,用“|”连写,默认为
    QMessageBox::Ok。
    QMessageBox类提供了许多标准按钮,如QMessageBox::Ok、QMessageBox::Close、
    QMessageBox::Discard等。
    虽然在此可以选择,但并不是随意选择的,应注意按常规成对出现。例如,通常Save与Discard成对出现,而
    Abort、Retry、Ignore则一起出现。
    (2)默认按钮,即消息框出现时,焦点默认处于哪个按钮上。
    */
    StandardButton QMessageBox::information
    (
     QWidget*parent, //消息框的父窗口指针
     const QString& title, //消息框的标题栏
     const QString& text, //消息框的文字提示信息
     StandardButtons buttons=Ok, //同Question消息框的注释内容
     StandardButton defaultButton=NoButton  //同Question消息框的注释内容
    ); 
    StandardButton QMessageBox::warning
    (
     QWidget* parent, //消息框的父窗口指针
     const QString& title, //消息框的标题栏
     const QString& text, //消息框的文字提示信息
     StandardButtons buttons=Ok, //同Question消息框的注释内容
     StandardButton defaultButton=NoButton  //同Question消息框的注释内容
    ); 

     
    5、About消息框(关于) 
    About消息框使用QMessageBox::about()函数完成,该函数形式如下:
     
    6、About Qt消息框(关于Qt) 
    About Qt消息框使用QMessageBox:: aboutQt()函数完成,该函数形式如下:
     
    7、自定义消息框 
    我们可以根据需求,通过创建一个QMessageBox对象来自定义一个消息框,以达到不同的效果。
    示例代码:
    StandardButton QMessageBox::critical
    (
     QWidget* parent, //消息框的父窗口指针
     const QString& title, //消息框的标题栏
     const QString& text, //消息框的文字提示信息
     StandardButtons buttons=Ok, //同Question消息框的注释内容
     StandardButton defaultButton=NoButton //同Question消息框的注释内容
    ); 
    void QMessageBox::about
    (
        QWidget* parent, //消息框的父窗口指针
        const QString& title, //消息框的标题栏
        const QString& text //消息框的文字提示信息
    );
    void QMessageBox::aboutQt
    (
     QWidget* parent, //消息框的父窗口指针
     const QString& title=QString() //消息框的标题栏
    ); 
    //Custom
    QMessageBox customMsgBox;
    //设置详细信息
    customMsgBox.setDetailedText(QString("detailed"));
    //设置标题
    customMsgBox.setWindowTitle(tr("Custom MessageBox"));
    //设置按钮
    QPushButton *yesbtn = customMsgBox.addButton(tr("ok"),QMessageBox::AcceptRole);
    QPushButton *nobtn = customMsgBox.addButton(tr("no"),QMessageBox::RejectRole);
    QPushButton *cancelbtn = 
    customMsgBox.addButton(tr("cancel"),QMessageBox::ActionRole);
    //设置文本

     
    customMsgBox.setText(tr("Custom MessageBox!!!!!"));
    //设置提示图标
    customMsgBox.setIconPixmap(QPixmap("D://b.jpg").scaled(40,40));
    //显示对话框
    customMsgBox.exec();
    //按钮判断
    if(customMsgBox.clickedButton() == yesbtn)
    {
        qDebug()<<"yes";
    }
    else if(customMsgBox.clickedButton() == nobtn)
    {
          qDebug()<<"no";
    }else if(customMsgBox.clickedButton() == cancelbtn)
    {
          qDebug()<<"cancel";
    }

  • 相关阅读:
    Debezium系列之:debezium版本升级到2.4.0及以上版本重大注意事项
    面试经典(7/150)买卖股票的最佳时机2
    过滤对象数组中有重复值的项
    燃冬之yum、vim和你
    腾讯云服务器秒杀什么时候开始?腾讯云服务器秒杀时间
    【Java】全套云HIS源码包含EMR、LIS(多医院、卫生机构使用)
    云原生 | Docker - [Dockerfile]
    php代码审计篇熊海cms代码审计
    Weighted Switch Controller--Jmeter插件推荐Chapter2
    java springboot通过EnableConfigurationProperties全局声明bean并处理装配
  • 原文地址:https://blog.csdn.net/weixin_57726902/article/details/126338679