• 标准对话框


    标准颜色对话框:

    头文件为:#include

    getColor(const QColor &initial= Qt::white, QWidget *parent= nullptr, const QString &title= QString(), QColorDialog::ColorDialogOptionsoptions= ColorDialogOptions())

     getColor(颜色,父类,标题,对话框外观选项)

    函数含义
    QColorDialog::ShowAlphaChannel允许用户选择颜色的 Alpha 分量。
    QColorDialog::NoButtons不显示“确定”和“取消”按钮。(对于“实时对话”很有用。
    QColorDialog::DontUseNativeDialog使用Qt的标准颜色对话框,而不是操作系统的原生颜色对话框

     例子:

    1. Dialog::Dialog(QWidget *parent) :
    2. QDialog(parent),
    3. ui(new Ui::Dialog)
    4. {
    5. ui->setupUi(this);
    6. resize(600,600);
    7. QPushButton *pb=new QPushButton(this);
    8. pb->move(200,200);
    9. pb->setText("弹出颜色选择框");
    10. connect(pb,&QPushButton::clicked,[=]()
    11. {
    12. QColor Cr1=QColorDialog::getColor(Qt::red,this,"获取颜色");
    13. });
    14. }

    点击按钮后:

     获取颜色信息:

    函数含义
    color.name()获取颜色名称
    color.red(),color.green(),color2.blue()获取RBG值(红,绿,蓝)
    color.isValid()颜色是否有效(有效true)
    currentColorChanged()监测颜色是否改变
    setStandardColor(intindex,QColor)更改索引处的QColor颜色
    1. resize(600,600);//设置窗口大小
    2. QPushButton *pb=new QPushButton(this);
    3. pb->move(200,200);
    4. pb->setText("弹出颜色选择框");
    5. QColor Cr1;
    6. connect(pb,&QPushButton::clicked,[&Cr1,this]()
    7. {
    8. Cr1=QColorDialog::getColor(Qt::red,this,"获取颜色");
    9. qDebug()<<Cr1.name();//获取颜色名称
    10. qDebug()<<Cr1.red()<<" "<<Cr1.green()<<" "<<Cr1.blue();//获取rgb
    11. if(Cr1.isValid())
    12. {
    13. qDebug()<<"颜色有效";
    14. }
    15. });

    点击按钮,选择颜色后显示内容 

     手动设置颜色对话框:

    构造函数:

    • QColorDialog    dialog(默认颜色,父类)
    • QColorDialog    dialog(父类)
    函数功能
    setOption显示alpha选项
    currentColor()获取当前颜色
    1. QColorDialog dialog(Qt::red,this);
    2. dialog.setOption(QColorDialog::ShowAlphaChannel);//设置选项
    3. dialog.exec();//以模态化显示
    4. QColor color=dialog.currentColor();//获取当前颜色
    5. qDebug()<<color;

    标准文件对话框:

    头文件:#include

    getOpenFileName(QWidget *parent= nullptr, const QString &caption= QString(), const QString &dir= QString(), const QString &filter= QString(), QString *selectedFilter= nullptr, QFileDialog::Optionsoptions= Options())

     参数的含义为:

    返回值QString

    参数:

    • 父类
    • 标签
    • 对话框打开时的默认路径 "."表示程序运行的目录 也可以填写完整的文件路径
    • 过滤器 可以过滤文件类型 不同过滤器用;;隔开同一个过滤器中的不同类型用空格隔开
    • 选择过滤器
    • 对话框的参数选择 
    1. //文件对话框
    2. QString file=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));

     

        qDebug()<<"选择的路径为:"<<file;

    会输出你成功选择的路径 

     获取多个文件地址:

    使用:QStringList   接收       函数改为getOpenFileNames()

    1. QStringList file=QFileDialog::getOpenFileNames(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));
    2. for(auto i:file)
    3. {
    4. qDebug()<<i<<endl;
    5. }

     选中文件:

     

     文件另存为:

    getSaveFilename()

    QString file1=QFileDialog::getSaveFileName(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));
    

     

     获取一个文件夹的位置

     getExistingDirectory()

    1. QString file1=QFileDialog::getExistingDirectory(this,tr("文件对话框"),"D:/QT");
    2. qDebug()<<file1;

     

     

     

     字体标准对话框:

    头文件:#include

    函数:

    函数参数:

    • 一个标记 ,标记是否点击对话框按钮   传的是指针
    • 设置对话框的初始字体和大小
    • 指定父类(可省略)
    • 对话框标题(可省略)
    • 对话框的外观参数(可省略)
    •  bool ok  代表选择框中是否点击了OK,点击了则为true
    • getFont()获取字体
    字体参数含义
    family() 字体名称  
     bold()是否为粗体
    italic()是否为斜体
    pointSize()字体大小
    1. //字体对话框会有一个返回值 用QFont类型数据接收 接收的是字体和参数
    2. //创建一个bool 类型数据
    3. bool ok;
    4. //参数1传输的是指针 所以要加上 &
    5. QFont font=QFontDialog::getFont(&ok,QFont("楷书",20),this,"选择字体");
    6. if(ok)
    7. {
    8. //可以获取用户选择的字体参数
    9. qDebug()<<font.family().toUtf8().data()<<" "<<font.bold()<<" "<<font.italic()<<" "<<font.pointSize();
    10. //family() 字体名称 bold()是否为粗体 italic()是否为斜体 pointSize()字体大小
    11. }

     

     

     输入对话框:

    头文件:#include

    QInputDialog::getText()文字输入框
    QInputDialog::getItem()条目选择框
    QInputDialog::getInt()int型输入框
    QInputDialog::getDouble()double 型输入框
    QInputDialog::getMultiLineText()多行字符串输入框

     文字输入框:

    getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoModemode= QLineEdit::Normal, const QString &text= QString(), bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)

    (父类,标题,控件内容,输入框类型,内容,是否点击OK,框的类型)

    输入框类型:

    QLineEdit::Normal0在输入字符时显示字符。这是默认值。
    QLineEdit::NoEcho1不显示任何内容。这可能适用于密码,甚至密码的长度也应保密。
    QLineEdit::Password2显示与平台相关的密码掩码字符,而不是实际输入的字符。
    QLineEdit::PasswordEchoOnEdit3在编辑时显示输入的字符,否则显示字符。Password
    1. //文字输入
    2. bool ok;//判断是否点击OK
    3. // 父类 标题 内容 输入框类型 默认内容
    4. QString text=QInputDialog::getText(this,"文字标准框","label",QLineEdit::Normal,"无",&ok);

     条目选择框:

    getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, intcurrent= 0, booleditable= true, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)

    (父类,标题,控件内容,输入框类型,内容,是否点击OK,框的类型)

    1. //条目选择框
    2. QStringList items;
    3. items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");
    4. bool ok;
    5. QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),tr("Season:"), items, 0, false, &ok);

     

     int型输入框

     getInt(QWidget *parent, const QString &title, const QString &label, intvalue= 0, intmin= -2147483647, intmax= 2147483647, intstep= 1, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags())

    (父类,标题,内容,默认值,最小值,最大值,增量,ok)

     

    1. bool ok;
    2. int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),tr("Percentage:"), 25, 0, 100, 1, &ok);
    3. qDebug()<<i;

     

     double型输入框:

    getDouble(QWidget *parent, const QString &title, const QString &label, doublevalue= 0, doublemin= -2147483647, double max= 2147483647, intdecimals= 1, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), doublestep= 1)

    (父类,标题,内容,默认值,最小值,最大值,增量,ok)

    1. bool ok;
    2. double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
    3. qDebug()<<d;

     

     

     多行字符串输入框

    getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text= QString(), bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)

    (父类,标题,内容,默认内容,ok)

    1. bool ok;
    2. QString slist=QInputDialog::getMultiLineText(this,tr("getMultiLineText"),tr("Text"),tr("0"),&ok);

     

     

    进度对话框:

    头文件:#include

    QProgressDialog::QProgressDialog(const QString&labelText, const QString&cancelButtonText,int minimum,intmaximumQWidget*parent= nullptr,Qt::WindowFlags f=Qt:WindowFlags())

    (标签,内容,最小值,最大值,父类,窗口类型)

    1. //进度条
    2. QProgressDialog pdialog(tr("kkkkk"),"取消",0,100,this);
    3. pdialog.setWindowTitle("进度条");
    4. pdialog.setModal(true);//设置模态
    5. pdialog.show();
    6. for(int i=0;i<1000000;i++)
    7. {
    8. pdialog.setValue(i);//设置数值
    9. QCoreApplication::processEvents();//防止页面被冻结
    10. if(pdialog.wasCanceled())break;//点击取消,暂停
    11. }
    12. pdialog.setValue(1000000);

     这个因该和定时器一起使用。(后面的内容)

     向导对话框:

    在Qt中,向导对话框QWizard类提供一个向导界面框架。

    头文件:#include

    • QWizard   框架
    • QWizardPage   框架页面
    • addPage()  框架添加页面

    在Dialog.h中添加3个函数

    1. private:
    2. Ui::Dialog *ui;
    3. QWizardPage *page1();//页面1
    4. QWizardPage *page2();//页面2
    5. QWizardPage *page3();//页面3

     在Dialog.cpp中的实现

    1. QWizardPage* Dialog::page1()
    2. {
    3. QWizardPage* page=new QWizardPage;
    4. page->setTitle(tr("111111111111"));
    5. return page;
    6. }
    7. QWizardPage* Dialog::page2()
    8. {
    9. QWizardPage* page=new QWizardPage;
    10. page->setTitle(tr("222222222222"));
    11. return page;
    12. }
    13. QWizardPage* Dialog::page3()
    14. {
    15. QWizardPage* page=new QWizardPage;
    16. page->setTitle(tr("333333333333"));
    17. return page;
    18. }

    创建一个按钮,点击进入向导框

    1. Dialog::Dialog(QWidget *parent) :
    2. QDialog(parent),
    3. ui(new Ui::Dialog)
    4. {
    5. ui->setupUi(this);
    6. resize(600,600);
    7. QPushButton *pb=new QPushButton(this);
    8. pb->move(200,200);
    9. pb->setText("弹出颜色选择框");
    10. connect(pb,&QPushButton::clicked,[=]()
    11. {
    12. QWizard zaid;
    13. zaid.setWindowTitle("向导");
    14. zaid.addPage(page1());
    15. zaid.addPage(page2());
    16. zaid.addPage(page3());
    17. zaid.exec();
    18. });
    19. }

     

     

     

  • 相关阅读:
    随机密码生成器(Python)
    Docker-可视化管理工具总结-推荐使用Portainer
    利用 spring test 实现自动启动spring 容器进行 JPA接口测试
    Linux内存泄露案例分析和内存管理分享
    9.2.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-深度估计
    如何从外网远程控制企业内网电脑?
    前端如何在没有后端配合的情况下获取服务器时间?
    C++:实现委托机制
    php获取农历日期节日
    CLIP论文解读
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/127679708