📄 qmessagebox.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/dialogs/qmessagebox.cpp:138 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>QMessageBox类</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
<a href="index.html">
<font color="#004faf">主页</font></a>
| <a href="classes.html">
<font color="#004faf">所有的类</font></a>
| <a href="mainclasses.html">
<font color="#004faf">主要的类</font></a>
| <a href="annotated.html">
<font color="#004faf">注释的类</font></a>
| <a href="groups.html">
<font color="#004faf">分组的类</font></a>
| <a href="functions.html">
<font color="#004faf">函数</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<h1 align=center>QMessageBox类参考</h1>
<p>QMessageBox类提供了一个有一条简短消息、一个图标和一些按钮的模式对话框。
<a href="#details">详情请见……</a>
<p><tt>#include <<a href="qmessagebox-h.html">qmessagebox.h</a>></tt>
<p>继承了<a href="qdialog.html">QDialog</a>。
<p><a href="qmessagebox-members.html">所有成员函数的列表。</a>
<h2>公有成员</h2>
<ul>
<li><div class=fn>enum <a href="#Icon-enum"><b>Icon</b></a> { NoIcon = 0, Information = 1, Warning = 2, Critical = 3 }</div></li>
<li><div class=fn><a href="#QMessageBox"><b>QMessageBox</b></a> ( QWidget * parent = 0, const char * name = 0 )</div></li>
<li><div class=fn><a href="#QMessageBox-2"><b>QMessageBox</b></a> ( const QString & caption, const QString & text, Icon icon, int button0, int button1, int button2, QWidget * parent = 0, const char * name = 0, bool modal = TRUE, WFlags f = WStyle_DialogBorder )</div></li>
<li><div class=fn><a href="#~QMessageBox"><b>~QMessageBox</b></a> ()</div></li>
<li><div class=fn>QString <a href="#text"><b>text</b></a> () const</div></li>
<li><div class=fn>void <a href="#setText"><b>setText</b></a> ( const QString & )</div></li>
<li><div class=fn>Icon <a href="#icon"><b>icon</b></a> () const</div></li>
<li><div class=fn>void <a href="#setIcon"><b>setIcon</b></a> ( Icon )</div></li>
<li><div class=fn>const QPixmap * <a href="#iconPixmap"><b>iconPixmap</b></a> () const</div></li>
<li><div class=fn>void <a href="#setIconPixmap"><b>setIconPixmap</b></a> ( const QPixmap & )</div></li>
<li><div class=fn>QString <a href="#buttonText"><b>buttonText</b></a> ( int button ) const</div></li>
<li><div class=fn>void <a href="#setButtonText"><b>setButtonText</b></a> ( int button, const QString & text )</div></li>
<li><div class=fn>virtual void <a href="#adjustSize"><b>adjustSize</b></a> ()</div></li>
<li><div class=fn>TextFormat <a href="#textFormat"><b>textFormat</b></a> () const</div></li>
<li><div class=fn>void <a href="#setTextFormat"><b>setTextFormat</b></a> ( TextFormat )</div></li>
</ul>
<h2>静态公有成员</h2>
<ul>
<li><div class=fn>int <a href="#information"><b>information</b></a> ( QWidget * parent, const QString & caption, const QString & text, int button0, int button1 = 0, int button2 = 0 )</div></li>
<li><div class=fn>int <a href="#information-2"><b>information</b></a> ( QWidget * parent, const QString & caption, const QString & text, const QString & button0Text = QString::null, const QString & button1Text = QString::null, const QString & button2Text = QString::null, int defaultButtonNumber = 0, int escapeButtonNumber = -1 )</div></li>
<li><div class=fn>int <a href="#warning"><b>warning</b></a> ( QWidget * parent, const QString & caption, const QString & text, int button0, int button1, int button2 = 0 )</div></li>
<li><div class=fn>int <a href="#warning-2"><b>warning</b></a> ( QWidget * parent, const QString & caption, const QString & text, const QString & button0Text = QString::null, const QString & button1Text = QString::null, const QString & button2Text = QString::null, int defaultButtonNumber = 0, int escapeButtonNumber = -1 )</div></li>
<li><div class=fn>int <a href="#critical"><b>critical</b></a> ( QWidget * parent, const QString & caption, const QString & text, int button0, int button1, int button2 = 0 )</div></li>
<li><div class=fn>int <a href="#critical-2"><b>critical</b></a> ( QWidget * parent, const QString & caption, const QString & text, const QString & button0Text = QString::null, const QString & button1Text = QString::null, const QString & button2Text = QString::null, int defaultButtonNumber = 0, int escapeButtonNumber = -1 )</div></li>
<li><div class=fn>void <a href="#about"><b>about</b></a> ( QWidget * parent, const QString & caption, const QString & text )</div></li>
<li><div class=fn>void <a href="#aboutQt"><b>aboutQt</b></a> ( QWidget * parent, const QString & caption = QString::null )</div></li>
<li><div class=fn>int message ( const QString & caption, const QString & text, const QString & buttonText = QString::null, QWidget * parent = 0, const char * = 0 ) <em>(obsolete)</em></div></li>
<li><div class=fn>bool query ( const QString & caption, const QString & text, const QString & yesButtonText = QString::null, const QString & noButtonText = QString::null, QWidget * parent = 0, const char * = 0 ) <em>(obsolete)</em></div></li>
<li><div class=fn>QPixmap standardIcon ( Icon icon, GUIStyle style ) <em>(obsolete)</em></div></li>
<li><div class=fn>QPixmap <a href="#standardIcon"><b>standardIcon</b></a> ( Icon icon )</div></li>
</ul>
<h2>属性</h2>
<ul>
<li><div class=fn>Icon <a href="#icon-prop"><b>icon</b></a> - 消息框的图标</div></li>
<li><div class=fn>QPixmap <a href="#iconPixmap-prop"><b>iconPixmap</b></a> - 当前图标</div></li>
<li><div class=fn>QString <a href="#text-prop"><b>text</b></a> - 被显示的消息框文本</div></li>
<li><div class=fn>TextFormat <a href="#textFormat-prop"><b>textFormat</b></a> - 消息框中被显示的文本的格式</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>
QMessageBox类提供了一个有一条简短消息、一个图标和一些按钮的模式对话框。
<p> 消息框用于提供情报信息并且问一些简单的问题。
<p> QMessageBox提供了一个不同信息的范围,大致按两个轴进行排列:严重程度和复杂程度。
<p> 按严重程度分:
<center><table cellpadding="4" cellspacing="2" border="0">
<tr bgcolor="#f0f0f0">
<td valign="top"><img src="qmessagebox-info.png">
<td valign="top">信息
<td valign="top">用于普通操作的一部分的消息框
<tr bgcolor="#d0d0d0">
<td valign="top"><img src="qmessagebox-warn.png">
<td valign="top">警告
<td valign="top">用于告诉用户一些不常出现的错误的消息框
<tr bgcolor="#f0f0f0">
<td valign="top"><img src="qmessagebox-crit.png">
<td valign="top">严重
<td valign="top">用于告诉用户严重的错误的消息框
</table></center>
<p> 对于每一个严重程度,消息框都有不同的图标。
<p> 按复杂程度分为一个按钮(确定)的简单消息、或者用于提问的两个或者甚至三个按钮。
<p> 还有一些用于常用情况的静态函数。
<p> 实例:
<p> 如果程序不能找到一个支持文件,但是能在没有它的情况在做得很好:
<p> <pre>
QMessageBox::<a href="#information">information</a>( this, "Application name",
"Unable to find the user preferences file.\n"
"The factory default will be used instead." );
</pre>
<p> <a href="#warning">warning</a>()可以用于告诉用户一些不常出现的错误,或者不容易被修复的错误:
<p> <pre>
switch( QMessageBox::<a href="#warning">warning</a>( this, "Application name",
"Could not connect to the <mumble> server.\n"
"This program can't function correctly "
"without the server.\n\n",
"Retry",
"Quit", 0, 0, 1 ) )
case 0: // 用户点击“再试”或者按下回车键
// 再次尝试
break;
case 1: // 用户点击“退出”或者按下Esc键
// 退出
break;
}
</pre>
<p> 所有消息框的消息的文本部分都可以是多信息文本或者一般文本。如果拟制定一个多信息文本格式字符串,它将会被使用默认样式单来呈现。详细情况请参考<a href="qstylesheet.html#defaultSheet">QStyleSheet::defaultSheet</a>()。对于包含XML元字符的特定字符串,自动多信息文本检测可能会失败,会把一般文本不正确地解释为多信息文本。在这种情况下,可以使用<a href="qstylesheet.html#convertFromPlainText">QStyleSheet::convertFromPlainText</a>()来把你的一般文本字符串转化为在视觉上一致的多信息文本或者明确地通过<a href="#setTextFormat">setTextFormat</a>()设置文本格式。
<p> 注意微软视窗用户界面指南强烈建议在把应用程序名称作为这个窗口的标题。
<p> 下面是更多的关于如何使用静态成员函数地实例。在这些实例之后,你将会找到非静态成员函数的概述。
<p> 退出程序是正常操作的一部分。如果存在没有保存地数据,用户可能应该被被询问他们是否想保存数据。例如:
<p> <pre>
switch( QMessageBox::<a href="#information">information</a>( this, "Application name here",
"The document contains unsaved changes\n"
"Do you want to save the changes before exiting?",
"&Save", "&Discard", "Cancel",
0, // Enter == button 0
2 ) ) { // Escape == button 2
case 0: // Save被点击或者Alt+S被按下或者Enter被按下。
// 保存
break;
case 1: // Discard被点击或者Alt+D被按下。
// 不保存但退出
break;
case 2: // Cancel被点击或者Alt+C被按下或者Escape被按下。
// 不退出
break;
}
</pre>
<p> 为了和微软的建议一致,应用程序的名称被作为窗口标题。Escape按钮撤销整个退出操作,并且按下Enter导致在退出发生之前这些变化被保存。
<p> 磁盘已满错误是不常见的(在完美的世界中,它们是存在的)并且它们通常很难变为正确。这个实例使用了预定义的按钮来替换了写在代码中的按钮文本:
<p> <pre>
switch( QMessageBox::<a href="#warning">warning</a>( this, "Application name here",
"Could not save the user preferences,\n"
"because the disk is full. You can delete\n"
"some files and press Retry, or you can\n"
"abort the Save Preferences operation.",
QMessageBox::Retry | QMessageBox::Default,
QMessageBox::Abort | QMessageBox::Escape )) {
case QMessageBox::Retry: // Retry被点击或者Enter被按下。
// 再次尝试
break;
case QMessageBox::Abort: // Abort被点击或者Escape被按下。
// 放弃
break;
}
</pre>
<p> <a href="#critical">critical</a>()函数应用被用于保留严重错误。在这个实例中,errorDetails是<a href="qstring.html">QString</a>或者const char*,并且QString被用于连接几个字符串:
<p> <pre>
QMessageBox::<a href="#critical">critical</a>( 0, "Application name here",
QString("An internal error occurred. Please ") +
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -