标准对话框

标准颜色对话框:

头文件为:#include<QColorQialog>

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的标准颜色对话框,而不是操作系统的原生颜色对话框

 例子:

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    resize(600,600);

    QPushButton *pb=new QPushButton(this);
    pb->move(200,200);
    pb->setText("弹出颜色选择框");
    connect(pb,&QPushButton::clicked,[=]()
    {
        QColor Cr1=QColorDialog::getColor(Qt::red,this,"获取颜色");
    });
}

点击按钮后:

 获取颜色信息:

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

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

 手动设置颜色对话框:

构造函数:

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

标准文件对话框:

头文件:#include<QFileDialog>

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

 参数的含义为:

返回值QString

参数:

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

 

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

会输出你成功选择的路径 

 获取多个文件地址:

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

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

 选中文件:

 

 文件另存为:

getSaveFilename()

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

 

 获取一个文件夹的位置

 getExistingDirectory()

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

 

 

 

 字体标准对话框:

头文件:#include<QFontDialog>

函数:

函数参数:

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

 

 

 输入对话框:

头文件:#include<QInputDialog>

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
    //文字输入
    bool ok;//判断是否点击OK
    //                                 父类    标题       内容       输入框类型     默认内容
    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,框的类型)

    //条目选择框
    QStringList items;
    items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");
    bool ok;
    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)

 

    bool ok;
    int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),tr("Percentage:"), 25, 0, 100, 1, &ok);
    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)

    bool ok;
    double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
    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)

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

 

 

进度对话框:

头文件:#include<ProgressDialog>

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

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

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

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

 向导对话框:

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

头文件:#include<QWizard>

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

在Dialog.h中添加3个函数

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

 在Dialog.cpp中的实现

QWizardPage* Dialog::page1()
{
    QWizardPage* page=new QWizardPage;
    page->setTitle(tr("111111111111"));
    return page;
}
QWizardPage* Dialog::page2()
{
    QWizardPage* page=new QWizardPage;
    page->setTitle(tr("222222222222"));
    return page;
}
QWizardPage* Dialog::page3()
{
    QWizardPage* page=new QWizardPage;
    page->setTitle(tr("333333333333"));
    return page;
}

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

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    resize(600,600);

    QPushButton *pb=new QPushButton(this);
    pb->move(200,200);
    pb->setText("弹出颜色选择框");
    connect(pb,&QPushButton::clicked,[=]()
    {
        QWizard zaid;
        zaid.setWindowTitle("向导");
        zaid.addPage(page1());
        zaid.addPage(page2());
        zaid.addPage(page3());
        zaid.exec();

    });

}

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值