第一步:首先创建一个项目,之后进入ui设计模式,在左侧找到Label和Push Button这两个左键拖入。
第二步:双击Label将其修改为主界面,之后在Push Button 右键选择clicked()转到槽。
第三步:在函数槽中添加:(需要包含#include
void MainWindow::on_pushButton_clicked()
{
QDialog * dialog = new QDialog(this); //创建一个新的会话窗口
dialog -> show();
}
第四步:运行点击PushButton 实现多窗口。
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
QColor color = QColorDialog::getColor(Qt::red,this,QObject::tr("颜色对话框"));this 代表对象本身 ::区域运算符 代表使用某个类中的函数或变量等
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
QString filename = QFileDialog::getOpenFileName(this,QObject::tr("文件对话框"),"D:",QObject::tr("图片文件(*png *jpg)"));
表示打开D:盘查看png或ipg的文件。*png和*jpg两者之间有一个空格。
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
void MainWindow::on_pushButton_4_clicked()
{
bool ok; //判断标志,判断是否点击了ok确定按钮
QFont font = QFontDialog::getFont(&ok,this);
if(ok)
ui -> pushButton_4-> setFont(font); //将字体设置为所选字体
}结果图:
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
bool ok;
QString string = QInputDialog::getText(this,QObject::tr("输入字符串对话框"),
QObject::tr("请输入用户名:"),QLineEdit::Normal
,QObject::tr("admin"),&ok);
if(ok)
qDebug()<<"string:"< int value1 = QInputDialog::getInt(this,QObject::tr("请输入整数对话框"),QObject::tr("请输入-1000~1000之间的数值"),100,-1000,1000,10,&ok);if(ok)qDebug()<<"value1:"< double value2 = QInputDialog::getDouble(this,QObject::tr("输入浮点数对话框"),QObject::tr("请输入-1000~1000之间的数值"),0.00,-1000,1000,2,&ok);if(ok)qDebug()<<"value2:"< QStringList items;items<<QObject::tr("条目1")<<QObject::tr("条目2");QString item = QInputDialog::getItem(this,QObject::tr("输入条目对话框"),QObject::tr("请选择一个条目"),items,0,false,&ok);
if(ok)qDebug()<<"item:"<
用户名-》QLineEdit::Normal//模式为输入显示内容整数->10 表示上下增减按钮一次增或者减10浮点数->2表示小数点后留两位
条目-> 0表示默认显示第0个条目,true表示条目是否可以更改(true为可修改)。
结果图:六、消息对话框
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
)
int ret1 = QMessageBox::question(this,QObject::tr("问题对话框"),QObject::tr("你了解Qt么?"),QMessageBox::Yes,QMessageBox::No);if(ret1 == QMessageBox::Yes)qDebug()<<QObject::tr("问题!");int ret2 = QMessageBox::information(this,QObject::tr("提示对话框"),QObject::tr("这是Qt书籍!"),QMessageBox::Ok);if(ret2 == QMessageBox::Ok)qDebug()<<QObject::tr("提示!");int ret3 = QMessageBox::warning(this,QObject::tr("警告对话框"),QObject::tr("不能提前结束!"),QMessageBox::Abort);if(ret3 == QMessageBox::Abort)qDebug()<<QObject::tr("警告!");int ret4 = QMessageBox::critical(this,QObject::tr("严重错误对话框"),QObject::tr("发现了一个严重错误!现在要关闭所有文件!"),QMessageBox::YesAll);if(ret4 == QMessageBox::YesAll)qDebug()<<QObject::tr("错误!");QMessageBox::about(this,QObject::tr("关于对话框"),QObject::tr("Qt gongzuo!"));结果图:
七、进度对话框
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
)
QProgressDialog dialog(QObject::tr("文件复制进度"),QObject::tr("取消"),0,50000,this); //50000运行次数dialog.setWindowTitle(QObject::tr("进度对话框"));dialog.setWindowModality(Qt::WindowModal); //将对话框设置为模态(不可交互,只能等一个结束另一个才可以运行)dialog.show();
for(int i = 0;i < 50000;i++){
dialog.setValue(i); //每一次将值改标为i
QCoreApplication::processEvents(); //避免长时间传输导致界面冻结if(dialog.wasCanceled()) //如果点击cancel按钮则取消传输break;}
dialog.setValue(50000);qDebug()<<QObject::tr("复制结束!");结果图:八、向导对话框
添加一个按钮(Push Button)(需要头文件#include
) 1、首先在xxx.h文件中添加#include
添加声明:
private:
Ui::MyWidget *ui;QWizardPage * createPage1();QWizardPage * createPage2();QWizardPage * createPage3();目的是生成三个向导页面。
2、在xxx.cpp文件中定义
QWizardPage * MyWidget::createPage1(){QWizardPage * page = new QWizardPage;page -> setTitle(QObject::tr("介绍"));return page;}QWizardPage * MyWidget::createPage2(){QWizardPage * page = new QWizardPage;page -> setTitle(QObject::tr("用户选择信息"));return page;}QWizardPage * MyWidget::createPage3(){QWizardPage * page = new QWizardPage;page -> setTitle(QObject::tr("结束"));return page;}3、在槽中定义:
QWizard wizard(this);wizard.setWindowTitle(QObject::tr("向导对话框"));wizard.addPage(createPage1());
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();
结果图:九、错误信息对话框
添加一个按钮(Push Button),右键转到槽添加:(需要头文件#include
)
QErrorMessage * dialog = new QErrorMessage(this);dialog -> setWindowTitle(QObject::tr("错误消息对话框"));dialog -> showMessage(QObject::tr("这里是出错信息"));结果图: