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){
... //进行下一步的处理
}
}
}
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){
... //进行下一步的处理
}
}
}