QT常用对话框的使用以及实现
admin
2023-08-01 23:00:25
0

      考虑的QT的对话框的内容颇多,很难记,而且使用起来往往相同的操作,所以将自己敲的各个常用对话框的使用方法上传。以下包含了颜色对话框、打开单个(多个)文件对话框,字体对话框、输入对话框、提示信息对话框、进度对话框、QErrorMessage对话框,以及向导对话框。

废话少说,直接上代码:


//颜色对话框

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

//获取选择的颜色再去设置即可

//文件对话框

QString filename = QFileDialog::getOpenFileName(this,tr("文件对话框"),"F:",tr("图片文件(*png)"));//如果想要获取多个文件直接使用getOpenFileNames方法即可


//字体对话框

bool ok;

QFont font = QFontDialog::getFont(&ok,this);


//输入对话框

QString str = QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名"),QLineEdit::Normal,tr("admin"),&ok);

if(ok)

qDebug()<<"Welcome";



int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输入0-1000的数值"),100,0,1000,10,&ok);

if(ok)

qDebug()<<"Welcome";




double value2 = QInputDialog::getDouble(this,tr("输入浮点数对话框"),tr("请输入0-1000的数值"),0.00,0,1000,2,&ok);

if(ok)

qDebug()<<"Welcome";



QStringList items;

items<

QString item = QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择一个条目"),items,0,true,&ok);

if(ok)

qDebug()<<"Welcome";


//提示信息对话框

int res = QMessageBox::question(this,tr("问题对话框"),tr("nothing"),QMessageBox::Yes,QMessageBox::No);

if(res == QMessageBox::Yes)    //问题对话框

qDebug()<<"2333333";


int res1 = QMessageBox::information(this,tr("提示对话框"),tr("nothing"),QMessageBox::Ok);

if(res == QMessageBox::Ok)     //提示对话框

qDebug()<<"2333333";


int res3 = QMessageBox::warning(this,tr("警告对话框"),tr("nothing"),QMessageBox::Abort);

if(res == QMessageBox::Abort)

qDebug()<<"2333333"; //警告对话框

int res4 = QMessageBox::critical(this,tr("严重错误对话框"),tr("nothing"),QMessageBox::YesAll);

if(res == QMessageBox::YesAll)

qDebug()<<"2333333";

int res4 = QMessageBox::about(this,tr("关于对话框"),tr("nothing"),tr("like life,like Opensource"));


//进度对话框


 QProgressDialog dialog(tr("进度"),tr("Cancel"),0,50000,this);

    dialog.setWindowTitle("进度对话框");

    dialog.setWindowModality(Qt::WindowModal);

    dialog.show();

    for(int i = 0;i<=50000;i++){

        dialog.setValue(i);

        QCoreApplication::processEvents();

        if(dialog.wasCanceled())

            break;

    }

//用于弹出错误信息.内容详细,不仅仅只是一个提示。有别于QMessageBox内的子方法

QErrorMessage *dia = new QErrorMessage(this);

dia->setWindowTitle("Error");

dia->showMessage(tr("It't error"));


    QWizardPage *createPage1();

    QWizardPage *createPage2();

    QWizardPage *createPage3();

QWizardPage *MyWidget::createPage1()    //一定要注意,这个是基于Widget类的函数,在QMainwindow是不存在的

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("介绍");

    return page;

}

QWizardPage *MyWidget::createPage2()

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("用户选择信息");

    return page;

}

QWizardPage *MyWidget::createPage3()

{

    QWizardPage *page = new QWizardPage;

    page->setTitle("结束");

    return page;

}

    QWizard wizard(this);

    wizard.setWindowTitle("向导对话框");

    wizard.addPage(createPage1());

    wizard.addPage(createPage2());

    wizard.addPage(createPage3());

    wizard.exec();


希望能帮到各位,而且希望大家能将开源精神传播下去。Like life,like Opensource。

继续学习QT中。有资料会多多开源。


     

相关内容

热门资讯

男子隐私部位被割断,医生接回!... 6月某天的中午,25岁的小张经历了一场突如其来的意外,阴茎遭受利刃伤害,“命根子”险些没了。
消息人士:穆杰塔巴不太可能出席... 据CNN报道,一位地区消息人士透露,伊朗新任最高领袖穆杰塔巴不太可能按照伊斯兰革命卫队的建议,出席其...
内塔尼亚胡与特朗普通话,商定保... 当地时间9日晚间,以色列总理办公室发表声明称,以总理内塔尼亚胡当晚与美国总统特朗普通电话,双方商定将...
华电科工获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示华电科工(601226)新获得一项实用新型专利授权,专利名为“...
中集集团获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示中集集团(000039)新获得一项实用新型专利授权,专利名为“...
原创 科... 最近科学家公布了一个让很多人感到意外的发现,陪伴了地球45亿年的月球,正在以每年3.8厘米的速度悄悄...
福建省交通运输系统全力迎战台风... 福州7月9日电 (记者 闫旭 通讯员 陈勤思)今年第9号超强台风“巴威”正逐步逼近福建省沿海,福建省...
从“简易理疗”到“智慧康复” 从“简易理疗”到“智慧康复” 彭州西郊社区卫生服务中心探索基层康复新路径 患者在中心开展康复治疗。...
这位CEO为何认为游戏数据比互... 在实现通用人工智能(AGI)的道路上,大语言模型似乎并不是最终答案。ChatGPT和Claude等模...
Meta入局AI代码大模型赛道... 来源:环球市场播报 核心要点 Meta 推出 Muse Spark 大模型重大更新,并公布定价方...