qt 对话框

24 篇文章 0 订阅

 

对话框分为模态和非模态;

1、模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭。

this->setModal(true);

2、非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互。

this->setModal(false);

常见对话框 

QColor color = QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));

QString fileName = QFileDialog::getOpenFileName(this,tr("文件对话框"),".",tr("C++文件(*.cpp *.h)"));
//字体对话框    
    bool ok;
    QFont font = QFontDialog::getFont(&ok,this);
    if(ok)
        ui->pushButton_3->setFont(font);
    else
        qDebug()<<tr("没有选择字体");
//输入对话框
 bool ok;
    //获取字符串
    QString string = QInputDialog::getText(this,tr("输入字符串对话框"),
                                           tr("请输入用户名:"),QLineEdit::Normal,
                                           tr("admin"),&ok);
    if(ok)qDebug()<<"string: "<<string;
    //获取整数
    int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输入-100到100之间的数值:"),00,-100,100,1,&ok);
    if(ok)qDebug()<<"value: "<<value;

    QStringList items;
    items<<tr("条目1")<<tr("条目2");
    //获取条目
    QString item = QInputDialog::getItem(this,tr("输入条目对话框"),
                                           tr("请选择或输入一个条目"),items,0,true,&ok);
    if(ok)qDebug()<<"item: "<<item;

//消息对话框
 //问题对话框
    int ret1 = QMessageBox::question(this,tr("问题对话框"),tr("你爱我么?"),QMessageBox::Yes,QMessageBox::No);
    if(ret1 == QMessageBox::Yes)
        qDebug()<<tr("你爱我");
    //提示对话框
    int ret2 = QMessageBox::information(this,tr("提示对话框"),tr("提示一下"),QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok)
        qDebug()<<tr("提示对话框");
    //警告对话框
    int ret3 = QMessageBox::warning(this,tr("警告对话框"),tr("警告一下"),QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort)
        qDebug()<<tr("警告对话框");
    //错误对话框
    int ret4 = QMessageBox::critical(this,tr("错误对话框"),tr("严重错误"),QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll)
        qDebug()<<tr("错误对话框");

    //关于对话框
    QMessageBox::about(this,tr("关于对话框"),tr("关于"));

//进度条对话框
 QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
    dialog.setWindowTitle(tr("进度对话框"));
    dialog.setWindowModality(Qt::WindowModal);//将对话框设置为模态
    dialog.show();
    for(int i = 0;i<50000;i++)
    {
        dialog.setValue(i);
        QCoreApplication::processEvents();//避免界面冻结
        if(dialog.wasCanceled())
            break;
    }
    dialog.setValue(50000);
    qDebug()<<tr("复制结束");

//错误信息对话框
QErrorMessage *errordlg->setWindowTitle(tr("错误信息对话框"));
    errordlg->showMessage(tr("这里出错!!!"));

//向导信息对话框
{
 QWizard wizerd(this);
    wizerd.setWindowTitle(tr("向导对话框"));
    wizerd.addPage(CeatePage1());
    wizerd.addPage(CeatePage2());
    wizerd.addPage(CeatePage3());
    wizerd.exec();
}



QWizardPage *MyWidget::CeatePage1()
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("介绍"));
    return page;
}

QWizardPage *MyWidget::CeatePage2()
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("用户选择信息"));
    return page;
}

QWizardPage *MyWidget::CeatePage3()
{
    QWizardPage *page = new QWizardPage;
    page->setTitle(tr("结束"));
    return page;
}
///

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值