zoukankan      html  css  js  c++  java
  • Qt 标准对话框

    Qt提供了一些可以复用的对话框类型,这些对话框类型全部继承与QDialo类。

      

     Qt中标准对话框遵循相同的使用方法:

      //定义对话框对象

      DialogType dlg(this);

      //设置对话框属性

      dlg.setPrpertyXXX(value);

      if(dlg.exec() == DialogType::value)

      {

      //获取对话框数据

      Type V = dlg.getDialogValue();

      //处理对话框数据

      //....

      }

    Qt消息对话框:QMessageBox

      QMessageBox 中的实用函数。

     

      

    void    about ( QWidget * parent, const QString & title, const QString & text )
    void    aboutQt ( QWidget * parent, const QString & title = QString() )
    StandardButton    critical ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
    StandardButton    information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
    StandardButton    question ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
    StandardButton    warning ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )

      测试代码:  

        QMessageBox Mes(this);
    
        /*消息提示对话框*/
    //    if( Mes.information(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll)
    //            == QMessageBox::Ok)
    //    {
    //        qDebug()<<"QMessageBox::Ok";
    //    }
        /*警告提示对话框*/
    //    if( Mes.warning(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll)
    //            == QMessageBox::Ok)
    //    {
    //        qDebug()<<"QMessageBox::Ok";
    //    }
        /*问题提示对话框*/
    //    if( Mes.question(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll)
    //            == QMessageBox::Ok)
    //    {
    //        qDebug()<<"QMessageBox::Ok";
    //    }
    
        /*关键提示对话框*/
    //    if( Mes.critical(this,"MessageBox","this is MessageBox!",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::YesAll)
    //            == QMessageBox::Ok)
    //    {
    //        qDebug()<<"QMessageBox::Ok";
    //    }
       Mes.about(this,"MessageBox","this is MessageBox!");
    
    //    Mes.setWindowTitle("MessageBox");//设置标题
    //    Mes.setText("this is MessageBox~");//设置提示内容
    //    Mes.setIcon(QMessageBox::Warning);
    //    Mes.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel|QMessageBox::YesAll);
    //    if(Mes.exec() == QMessageBox::Ok)
    //    {
    //        qDebug()<<"QMessageBox::Ok";
    //    }
        qDebug()<<"Messege_BtnClicked";

    Qt文件对话框:QFileDialog

      Open Mode

        ——应用程序需要用户打开一个外部文件

      

     QFileDialog fl;
        fl.setAcceptMode(QFileDialog::AcceptOpen);//设置为Open模式
        QStringList setFs ;
        setFs <<"Text(*.txt)"<<"All(*.*)";
    
    
        fl.setFilters(setFs);
    
        /*QFileDialog::ExistingFile 打开单个
          QFileDialog::ExistingFiles 打开多个文件
        */
        fl.setFileMode(QFileDialog::ExistingFile);
        if(fl.exec() == QFileDialog::Accepted)
        {
            QStringList fs = fl.selectedFiles();//获取文件路径 文件名
            for(int i=0;i<fs.count();i++)
            {
                qDebug()<<fs[i];
            }
        }
        qDebug()<<"FileDialog_BtnClicked";

      Save Mode

        ——应用程序需要将当前内容存储到用户指定的目录中去

    测试代码:

      

     QFileDialog fl;
        fl.setAcceptMode(QFileDialog::AcceptSave);
        fl.setFilter("Text(*.txt)");//设置保存属性
        if(fl.exec() == QFileDialog::Accepted)
        {
            qDebug()<<"QFileDialog::Accepted";
            QStringList fs = fl.selectedFiles();//获取文件路径 文件名
            for(int i=0;i<fs.count();i++)
            {
                qDebug()<<fs[i];
            }
        }
    QString    getExistingDirectory ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly )
    QString    getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
    QStringList    getOpenFileNames ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
    QString    getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )

    颜色对话框:QColorDialog

      ——用于提供颜色的对话框部件 

      实验代码:

      

    QColorDialog* color = new QColorDialog(this);
        if(color->exec() == QColorDialog::Accepted)
        {
           QColor nowColor = color->currentColor();//获取颜色信息
            qDebug() << nowColor;//ARGB模式显示
            /*获取RGB参数*/
            qDebug()<<nowColor.red();
            qDebug()<<nowColor.green();
            qDebug()<<nowColor.blue();
        }
        qDebug()<<"ColorDialog_BtnClicked";

      QColor类

        ——RGB:以红、绿、蓝为基准的三色模型

        ——HSV:以色调、饱和度、透明度、为基准的六角锥体模型

        ——CMYK:以天蓝、品红、黄色、黑为基准的全彩色印刷色彩模型

    输入对话框:QInputDialog

      ——用于需要零时进行数据输入的场合

       

    QInputDialog input;
        input.setLabelText("input double");//添加提示信息
        /*
          QInputDialog::TextInput
          QInputDialog::IntInput
          QInputDialog::DoubleInput
        */
        input.setInputMode(QInputDialog::DoubleInput);//设置输入属性
        input.setDoubleMaximum(1000);//设置输入数字最大值
        input.setDoubleMinimum(-1000);
    
        if(input.exec() == QInputDialog::Accepted)
        {
            qDebug()<<input.doubleValue();//获取输入值
        }
        qDebug()<<"InputDialog_BtnClicked";

    字体对话框:QFontDialog

      ——用于提供选择字体的对话框部件

      

     QFontDialog font;
        if(font.exec() == QFontDialog::Accepted)
        {
           qDebug()<<font.currentFont();
        }
        qDebug()<<"FontDialog_BtnClicked";

    进度对话框:QProgressDialog

       ——用于显示进度信息。需要用户等待的场合

     

       QProgressDialog progress;
        progress.setMaximum(100);//设置最大值
        progress.setValue(50);//设置进度值
        if(progress.exec() == QProgressDialog::Rejected)//关闭按钮处理
        {
            qDebug()<<"ProgressDialogEnd";
        }
    
        qDebug()<<"ProgressDialog_BtnClicked";

    打印对话框:QPrintDialog

      ——用于设置打印相关的参数信息

     

    QPrintDialog print ;
        if(print.exec() == QPrintDialog::Accepted)
        {
            QPrinter* p = print.printer();
            QTextDocument td; //使用QTextDocument
            td.setPlainText("hello,good");//设置字符信息
            p->setOutputFileName("I:\test.pdf");//设置输出名称
            td.print(p);//打印文件
        }
        qDebug()<<"PrintDialog_BtnClicked";
  • 相关阅读:
    [bbk3153] 第62集 Chapter 15Application Tuning(02)
    [bbk3152] 第61集 Chapter 15Application Tuning(01)
    [bbk1190]第2集 Chapter 01Oracle Architectural
    PL/SQL高级Creating Packages (01)
    Statspack00
    [bbk3201] 第64集 Chapter 16Using Materialized Views 00
    该如何选择国外VPS
    优化升级logging封装RotatingFileHandler
    smtp ssl模式邮件发送与附件添加
    smtp outlook邮件发送非授权码模式
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/12285988.html
Copyright © 2011-2022 走看看