您的位置 首页 > 产业综合

对话框是什么,对话框详解

各位老铁们好,相信很多人对对话框是什么都不是特别的了解,因此呢,今天就来为大家分享下关于对话框是什么以及对话框详解的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

Qt中使用QDialog来实现对话框,QDialog继承自QWidget,对话框分为两种,一种是模态对话框、另一种是非模态对话框。即阻塞和非阻塞对话框,而模态对话框又有两种:应用程序级别的和窗口级别的,分别指完成对话框之前阻塞整个应用和阻塞关联窗口。exec()和open()分别为应用程序级别和窗口级别的模态对话框,show()则为非模态对话框。

【领更多QT学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→领取Qt开发必备技术栈学习路线+资料

//构造函数\nQDialog::QDialog(QWidget*parent=nullptr,Qt::WindowFlagsf=Qt::WindowFlags());\n\nvoidsetSizeGripEnabled(bool)//设置启用大小手柄\n?\n?\n[virtualslot]voidopen()//半模态显示窗口\n[virtualslot]intQDialog::exec();//模态显示窗口\n?\n//隐藏模态窗口,并且解除模态窗口的阻塞,将exec()的返回值设置为QDialog::Accepted\n[virtualslot]voidQDialog::accept();\n//隐藏模态窗口,并且解除模态窗口的阻塞,将exec()的返回值设置为QDialog::Rejected\n[virtualslot]voidQDialog::reject();\n//关闭对话框并将其结果代码设置为r。finished()信号将发出r;如果r是QDialog::Accepted或QDialog::Rejected,则还将分别发出accept()或Rejected()信号。\n[virtualslot]voidQDialog::done(intr);

signals

voidQDialog::accepted();\nvoidQDialog::rejected();\nvoidQDialog::finished(intresult);

示例

dialog->show();\ndialog->exec();\ndialog->open();\nqDebug()<<"大老虎,嗷嗷嗷~";\n?\nconnect(dialog,&QDialog::finished,this,[](intres){qDebug()<<QDialog::DialogCode(res);});\nconnect(dialog,&QDialog::rejected,this,[](){qDebug()<<"rejected";});\nconnect(dialog,&QDialog::accepted,this,[](){qDebug()<<"accept";});QDialogButtonBox

QDialogButtongBox类是一个包含很多按钮的控件,在对话框中有多个按钮需要分组排列的按钮时,可以使用QDialogButtongBox类。

voidaddButton(QAbstractButton*button,QDialogButtonBox::ButtonRolerole)\nQPushButton*addButton(constQString&text,QDialogButtonBox::ButtonRolerole)\nQPushButton*addButton(QDialogButtonBox::StandardButtonbutton)\nvoidsetStandardButtons(QDialogButtonBox::StandardButtonsbuttons)

示例:

auto*yesBtn=dialogBtnBox->addButton(QDialogButtonBox::StandardButton::Yes);\nyesBtn->setText("确定");\ndialogBtnBox->addButton(QDialogButtonBox::StandardButton::Close)->setText("关闭");\ndialogBtnBox->addButton("查看帮助",QDialogButtonBox::ButtonRole::HelpRole);

sngnals

voidaccepted()//当单击按钮框中的按钮时将发出此信号,只要该按钮是用AcceptRole或YesRole定义的。\nvoidclicked(QAbstractButton*button)//当单击按钮框中的按钮时,将发出此信号,具体按钮由button指定\nvoidhelpRequested()//当按钮框中的按钮被单击时,这个信号就会发出,只要它是用HelpRole定义的。\nvoidrejected()//当单击按钮框中的按钮时,此信号将被触发,只要它是用RejectRole或NoRole定义的

示例:

//dialog为按钮组所在的对话框\nconnect(dialogBtnBox,&QDialogButtonBox::accepted,this,[=](){qDebug()<<"btnaccepted";\ndialog->accept();});\nconnect(dialogBtnBox,&QDialogButtonBox::clicked,this,[=](){qDebug()<<"clicked";});\nconnect(dialogBtnBox,&QDialogButtonBox::rejected,this,[=](){qDebug()<<"rejected";\ndialog->reject();});\nconnect(dialogBtnBox,&QDialogButtonBox::helpRequested,this,[=](){qDebug()<<"helpRequested";});2.1QMessageBox

QMessageBox对话框类是QDialog类的子类,通过这个类可以显示一些简单的提示框,用于展示警告、错误、问题等信息。关于这个类我们只需要掌握一些静态方法的使用就可以了。

//显示一个模态对话框,将参数text的信息展示到窗口中\n[static]voidQMessageBox::about(QWidget*parent,constQString&title,constQString&text);\n?\n/*\n参数:\n-parent:对话框窗口的父窗口\n-title:对话框窗口的标题\n-text:对话框窗口中显示的提示信息\n-buttons:对话框窗口中显示的按钮(一个或多个)\n-defaultButton\n1.defaultButton指定按下Enter键时使用的按钮。\n2.defaultButton必须引用在参数buttons中给定的按钮。\n3.如果defaultButton是QMessageBox::NoButton,QMessageBox会自动选择一个合适的默认值。\n*/\n?\n//显示带有标题标题和文本文本的简单关于框。\nvoidabout(QWidget*parent,constQString&title,constQString&text)\nvoidaboutQt(QWidget*parent,constQString&title=QString())\n?\n?\n//显示一个信息模态对话框\n[static]QMessageBox::StandardButtonQMessageBox::information(QWidget*parent,constQString&title,constQString&text,QMessageBox::StandardButtonsbuttons=Ok,QMessageBox::StandardButtondefaultButton=NoButton);\n?\n//显示一个错误模态对话框\n[static]QMessageBox::StandardButtonQMessageBox::critical(QWidget*parent,constQString&title,constQString&text,QMessageBox::StandardButtonsbuttons=Ok,QMessageBox::StandardButtondefaultButton=NoButton);\n?\n//显示一个问题模态对话框\n[static]QMessageBox::StandardButtonQMessageBox::question(QWidget*parent,constQString&title,constQString&text,QMessageBox::StandardButtonsbuttons=StandardButtons(Yes|No),QMessageBox::StandardButtondefaultButton=NoButton);\n?\n//显示一个警告模态对话框\n[static]QMessageBox::StandardButtonQMessageBox::warning(QWidget*parent,constQString&title,constQString&text,QMessageBox::StandardButtonsbuttons=Ok,QMessageBox::StandardButtondefaultButton=NoButton);

示例

QMessageBox::about(this,"关于Maye","我叫<fontstyle=\\"color:red\\">严炯强</font>,今年十岁了。是一个内向而又聪明的女孩。\\\n<br>我的爱好有:运动、画画、看书、做游戏、科学课和语文课。\\\n<br>去年,我一共得了两张奖状。一张是运动小健将的奖状,另一张是百里路小学冬锻跳绳比赛二年级段女子组第一名的奖状。我明白:只要努力,必须会有收获的。\\\n<br>每次我考到一百分的时候,爸爸妈妈就会奖励我,我也十分高兴。有一次我考了一百分,妈妈买了一个有轮子的书包给我。我考了一百分,爸爸总会带我去吃肯德基。\\\n<br>所以,在新学期里,我要更加努力,再创佳绩!\\\n<br><ahref=\\"www.bilibili.com\\">我的个人主页</a>");2.2QFileDialog

QFileDialog对话框类是QDialog类的子类,通过这个类可以选择要打开/保存的文件或者目录。关于这个类我们只需要掌握一些静态方法的使用就可以了。

/*\n通用参数:\n\t-parent:当前对话框窗口的父对象也就是父窗口\n\t-caption:当前对话框窗口的标题\n\t-dir:当前对话框窗口打开的默认目录\n\t-options:当前对话框窗口的一些可选项,枚举类型,一般不需要进行设置,使用默认值即可\n\t-filter:过滤器,在对话框中只显示满足条件的文件,可以指定多个过滤器,使用;;分隔\n\t\t-样式举例:\n\t\t\t-Images(*.png*.jpg)\n\t\t\t-Images(*.png*.jpg);;Textfiles(*.txt)\n\t-selectedFilter:如果指定了多个过滤器,通过该参数指定默认使用哪一个,不指定默认使用第一个过滤器\n*/\n//打开一个目录,得到这个目录的绝对路径\n[static]QStringQFileDialog::getExistingDirectory(QWidget*parent=nullptr,constQString&caption=QString(),constQString&dir=QString(),QFileDialog::Optionsoptions=ShowDirsOnly);\n\n//打开一个文件,得到这个文件的绝对路径\n[static]QStringQFileDialog::getOpenFileName(QWidget*parent=nullptr,constQString&caption=QString(),constQString&dir=QString(),constQString&filter=QString(),QString*selectedFilter=nullptr,QFileDialog::Optionsoptions=Options());\n\n//打开多个文件,得到这多个文件的绝对路径\n[static]QStringListQFileDialog::getOpenFileNames(QWidget*parent=nullptr,constQString&caption=QString(),constQString&dir=QString(),constQString&filter=QString(),QString*selectedFilter=nullptr,QFileDialog::Optionsoptions=Options());\n\n//打开一个目录,使用这个目录来保存指定的文件\n[static]QStringQFileDialog::getSaveFileName(QWidget*parent=nullptr,constQString&caption=QString(),constQString&dir=QString(),constQString&filter=QString(),QString*selectedFilter=nullptr,QFileDialog::Optionsoptions=Options());

【领更多QT学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→领取Qt开发必备技术栈学习路线+资料

QFont::QFont();\n/*\n参数:\n\t-family:本地字库中的字体名,通过office等文件软件可以查看\n\t-pointSize:字体的字号\n\t-weight:字体的粗细,有效范围为0~99\n\t-italic:字体是否倾斜显示,默认不倾斜\n*/\nQFont::QFont(constQString&family,intpointSize=-1,intweight=-1,boolitalic=false);\n\n//设置字体\nvoidQFont::setFamily(constQString&family);\n//根据字号设置字体大小\nvoidQFont::setPointSize(intpointSize);\n//根据像素设置字体大小\nvoidQFont::setPixelSize(intpixelSize);\n//设置字体的粗细程度,有效范围:0~99\nvoidQFont::setWeight(intweight);\n//设置字体是否加粗显示\nvoidQFont::setBold(boolenable);\n//设置字体是否要倾斜显示\nvoidQFont::setItalic(boolenable);\n\n//获取字体相关属性(一般规律:去掉设置函数的set就是获取相关属性对应的函数名)\nQStringQFont::family()const;\nboolQFont::italic()const;\nintQFont::pixelSize()const;\nintQFont::pointSize()const;\nboolQFont::bold()const;\nintQFont::weight()const;

QFontDialog类的静态API

[static]QFontQFontDialog::getFont(bool*ok,constQFont&initial,QWidget*parent=nullptr,constQString&title=QString(),QFontDialog::FontDialogOptionsoptions=FontDialogOptions());\n\n[static]QFontQFontDialog::getFont(bool*ok,QWidget*parent=nullptr);

窗口字体的设置

//QWidget类\n//得到当前窗口使用的字体\nconstQWidget::QFont&font()const;\n//给当前窗口设置字体,只对当前窗口类生效\nvoidQWidget::setFont(constQFont&);\n\n//QApplication类\n//得到当前应用程序对象使用的字体\n[static]QFontQApplication::font();\n//给当前应用程序对象设置字体,作用于当前应用程序的所有窗口\n[static]voidQApplication::setFont(constQFont&font,constchar*className=nullptr);2.4QColorDialog颜色类QColor

//构造函数\nQColor::QColor(Qt::GlobalColorcolor);\nQColor::QColor(intr,intg,intb,inta=...);\nQColor::QColor();\n\n//参数red,green,blue,alpha取值范围是0-255\nvoidQColor::setRed(intred);\nvoidQColor::setGreen(intgreen);\nvoidQColor::setBlue(intblue);\nvoidQColor::setAlpha(intalpha);\nvoidQColor::setRgb(intr,intg,intb,inta=255);\n\nintQColor::red()const;\nintQColor::green()const;\nintQColor::blue()const;\nintQColor::alpha()const;\nvoidQColor::getRgb(int*r,int*g,int*b,int*a=nullptr)const;

QFontDialog类的静态API

如果你还想了解更多这方面的信息,记得收藏关注本站。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023