Qt:内建对话框

QVBoxLayout::addLayout();
QVBoxLayout::setMargin();
QVBoxLayout::addStretch();
QLineEdit::setFocus();
QMessageBox box;
box.setWindowTitle();
box.setIcon(QMessageBox::Warning);
box.setText();
box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
box.setDetailedText(); //设置详细信息
Qt提供的内建对话框:
QColorDialog,QErrorMessage,QFileDialog,QFontDialog,QInputDialog,
QPageSetupDialog,QProgressDialog,QPrintDialog.
eg:
void CBuiltDlg::doPushBtn(){      //槽
    QPushButton* btn = qobject_cast<QPushButton*>(sender());
    if(btn == colorPushBtn){
        QPalette palette = displayTextEdit->palette();
        const QColor& color =
                QColorDialog::getColor(palette.color(QPalette::Base),this);
        if(color.isValid()){
            palette.setColor(QPalette::Base,color);
            displayTextEdit->setPalette(paltte);
        }
    }else if(btn == errorBushBtn){
        QErrorMessage box(this);
        box.setWindowTitle(tr("错误消息框"));
        box.showMessage(tr("错误消息实例xx."));
        box.showMessage(tr("错误消息实例yy."));
        box.showMessage(tr("错误消息实例zz."));
        box.exec();//可以new一个对象,用showMessage()就可以显示对话框,无需调用exec();
    }else if(btn = filePushBtn){
        QString fileName = QFileDialog::getOpenFileName(this,
                                                        tr("打开文件"),
                                                        "/usr/local/file",
                                                        tr("任何文件(*.*)"";;文本文件(*.txt)"";;XML文件(*.xml)"));
        displayTextEdit->setText(fileName);
    }else if(btn == fontPushBtn){
        bool ok;
        const QFont& font = QFontDialog::getFont(&ok,displayTextEdit->font(),
                                                 this,tr("字体对话框"));
        if(ok)
            displayTextEdit->setFont(font);
    }else if(btn == inputPushBtn){
        bool ok;
        QString text = QInputDialog::getText(this,tr("输入对话框"),
                                             tr("输入文本:"),
                                             QLineEdit::Normal,
                                             QDir::home().dirName(),
                                             &ok);
        if(ok && !text.isEmpty())
            displayTextEdit->setText(text);
    }else if(btn == pagePushBtn){
        QPrinter printer;
        QPageSetupDialog dlg(&printer,this);
        dlg.setWindowTitle(tr("页设置对话框"));
        if(dlg.exec() == QDialog::Accepted){
            ... //进行下一步处理
        }
    }else if(btn == progressPushBtn){
        QProgressDialog progress("tr(正在复制文件...)",
                                 tr("取消"),0,10000,this);
        progress.setWindowModality(Qt::WindowModal);
        progress.setWindowTitle(tr("进度对话框"));
        progress.show();
        for(int i = 0; i < 10000; ++i){
            progress.setValue(i); //推进显示的进度
            qApp->processEvents();//保证事件循环可以处理其他事件
            if(progress.wasCanceled())
                break;
            //... 复制文件处理
            qDebug() << i;
        }
        progress.setValue(10000);
    }else if(btn == printPushBtn){
        QPrinter printer;
        QPrintDialog dlg(&printer,this);
        dlg.setWindowTitle("打印对话框");
        if(dlg.exec() == QDialog::Accepted){
            ... //进行下一步的处理
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值