?? qframe.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/widgets/qframe.cpp:47 -->
<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>QFrame類</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>QFrame類參考</h1>
<p>QFrame類是有框架的窗口部件的基類。
<a href="#details">詳情請見……</a>
<p><tt>#include <<a href="qframe-h.html">qframe.h</a>></tt>
<p>繼承了<a href="qwidget.html">QWidget</a>。
<p>被<a href="qgroupbox.html">QGroupBox</a>、<a href="qscrollview.html">QScrollView</a>、<a href="qdockwindow.html">QDockWindow</a>、<a href="qgrid.html">QGrid</a>、<a href="qhbox.html">QHBox</a>、<a href="qlabel.html">QLabel</a>、<a href="qlcdnumber.html">QLCDNumber</a>、<a href="qlineedit.html">QLineEdit</a>、<a href="qmenubar.html">QMenuBar</a>、<a href="qpopupmenu.html">QPopupMenu</a>、<a href="qprogressbar.html">QProgressBar</a>、<a href="qsplitter.html">QSplitter</a>、<a href="qttableview.html">QtTableView</a>和<a href="qwidgetstack.html">QWidgetStack</a>繼承。
<p><a href="qframe-members.html">所有成員函數的列表。</a>
<h2>公有成員</h2>
<ul>
<li><div class=fn><a href="#QFrame"><b>QFrame</b></a> ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 )</div></li>
<li><div class=fn>int <a href="#frameStyle"><b>frameStyle</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setFrameStyle"><b>setFrameStyle</b></a> ( int style )</div></li>
<li><div class=fn>int <a href="#frameWidth"><b>frameWidth</b></a> () const</div></li>
<li><div class=fn>QRect <a href="#contentsRect"><b>contentsRect</b></a> () const</div></li>
<li><div class=fn>enum <a href="#Shape-enum"><b>Shape</b></a> { NoFrame = 0, Box = 0x0001, Panel = 0x0002, WinPanel = 0x0003, HLine = 0x0004, VLine = 0x0005, StyledPanel = 0x0006, PopupPanel = 0x0007, MenuBarPanel = 0x0008, ToolBarPanel = 0x0009, LineEditPanel = 0x000a, TabWidgetPanel = 0x000b, MShape = 0x000f }</div></li>
<li><div class=fn>enum <a href="#Shadow-enum"><b>Shadow</b></a> { Plain = 0x0010, Raised = 0x0020, Sunken = 0x0030, MShadow = 0x00f0 }</div></li>
<li><div class=fn>Shape <a href="#frameShape"><b>frameShape</b></a> () const</div></li>
<li><div class=fn>void <a href="#setFrameShape"><b>setFrameShape</b></a> ( Shape )</div></li>
<li><div class=fn>Shadow <a href="#frameShadow"><b>frameShadow</b></a> () const</div></li>
<li><div class=fn>void <a href="#setFrameShadow"><b>setFrameShadow</b></a> ( Shadow )</div></li>
<li><div class=fn>int <a href="#lineWidth"><b>lineWidth</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setLineWidth"><b>setLineWidth</b></a> ( int )</div></li>
<li><div class=fn>int <a href="#margin"><b>margin</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setMargin"><b>setMargin</b></a> ( int )</div></li>
<li><div class=fn>int <a href="#midLineWidth"><b>midLineWidth</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setMidLineWidth"><b>setMidLineWidth</b></a> ( int )</div></li>
<li><div class=fn>QRect <a href="#frameRect"><b>frameRect</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setFrameRect"><b>setFrameRect</b></a> ( const QRect & )</div></li>
</ul>
<h2>屬性</h2>
<ul>
<li><div class=fn>QRect <a href="#contentsRect-prop"><b>contentsRect</b></a> - 框架內的矩形 <em>(只讀)</em></div></li>
<li><div class=fn>QRect <a href="#frameRect-prop"><b>frameRect</b></a> - 框架矩形</div></li>
<li><div class=fn>Shadow <a href="#frameShadow-prop"><b>frameShadow</b></a> - 來自框架風格的框架陰影值</div></li>
<li><div class=fn>Shape <a href="#frameShape-prop"><b>frameShape</b></a> - 來自框架風格的框架外形值</div></li>
<li><div class=fn>int <a href="#frameWidth-prop"><b>frameWidth</b></a> - 被繪制的框架的寬度 <em>(只讀)</em></div></li>
<li><div class=fn>int <a href="#lineWidth-prop"><b>lineWidth</b></a> - 線寬</div></li>
<li><div class=fn>int <a href="#margin-prop"><b>margin</b></a> - 邊白的寬度</div></li>
<li><div class=fn>int <a href="#midLineWidth-prop"><b>midLineWidth</b></a> - 中間的線的寬度</div></li>
</ul>
<h2>保護成員</h2>
<ul>
<li><div class=fn>virtual void <a href="#paintEvent"><b>paintEvent</b></a> ( QPaintEvent * event )</div></li>
<li><div class=fn>virtual void <a href="#resizeEvent"><b>resizeEvent</b></a> ( QResizeEvent * e )</div></li>
<li><div class=fn>virtual void <a href="#drawFrame"><b>drawFrame</b></a> ( QPainter * p )</div></li>
<li><div class=fn>virtual void <a href="#drawContents"><b>drawContents</b></a> ( QPainter * )</div></li>
<li><div class=fn>virtual void <a href="#frameChanged"><b>frameChanged</b></a> ()</div></li>
</ul>
<hr><a name="details"></a><h2>詳細描述</h2>
QFrame類是有框架的窗口部件的基類。
<p>
<p> 它繪制框架并且調用一個虛函數<a href="#drawContents">drawContents</a>()來填充這個框架。這個函數是被子類重新實現的。這里至少還有兩個有用的函數:<a href="#drawFrame">drawFrame</a>()和<a href="#frameChanged">frameChanged</a>()。
<p> <a href="qpopupmenu.html">QPopupMenu</a>使用這個來把菜單“升高”,高于周圍屏幕。<a href="qprogressbar.html">QProgressBar</a>有“凹陷”的外觀。<a href="qlabel.html">QLabel</a>有平坦的外觀。這些有框架的窗口部件可以被改變。
<p> <pre>
<a href="qlabel.html">QLabel</a> label(...);
label.<a href="#setFrameStyle">setFrameStyle</a>( QFrame::<a href="#Shape-enum">Panel</a> | QFrame::<a href="#Shadow-enum">Raised</a> );
label.<a href="#setLineWidth">setLineWidth</a>( 2 );
<a href="qprogressbar.html">QProgressBar</a> pbar(...);
label.<a href="#setFrameStyle">setFrameStyle</a>( QFrame::<a href="#Shape-enum">NoFrame</a> );
</pre>
<p> QFrame類也能夠直接被用來創建沒有任何內容的簡單框架,盡管通常情況下,你要用到<a href="qhbox.html">QHBox</a>或<a href="qvbox.html">QVBox</a>,因為它們可以自動的布置你放到框架中的窗口部件。
<p> 框架窗口部件有四個屬性:<a href="#frameStyle">frameStyle</a>()、<a href="#lineWidth">lineWidth</a>()、<a href="#midLineWidth">midLineWidth</a>()和<a href="#margin">margin</a>()。
<p> 框架風格由<a href="#Shape-enum">框架外形</a>和<a href="#Shadow-enum">陰影風格</a>決定。框架外形有<a href="#Shape-enum">NoFrame</a>、<a href="#Shape-enum">Box</a>、<a href="#Shape-enum">Panel</a>、<a href="#Shape-enum">StyledPanel</a>、<a href="#Shape-enum">PopupPanel</a>、<a href="#Shape-enum">WinPanel</a>、<a href="#Shape-enum">ToolBarPanel</a>、<a href="#Shape-enum">MenuBarPanel</a>、<a href="#Shape-enum">HLine</a>和<a href="#Shape-enum">VLine</a>,陰影風格有<a href="#Shadow-enum">Plain</a>、<a href="#Shadow-enum">Raised</a>和<a href="#Shadow-enum">Sunken</a>。
<p> 線寬就是框架邊界的寬度。
<p> 中間線寬指定的是在框架中間的另外一條線的寬度,它使用第三種顏色來得到一個三維的效果。注意中間線只有在<a href="#Shape-enum">Box</a>、<a href="#Shape-enum">HLine</a>和<a href="#Shape-enum">VLine</a>這些凸起和凹陷的框架中才被繪制。
<p> 邊白就是框架和框架內容之間的間隙。
<p> <a name="picture"></a>
這個表顯示的是風格和寬度的絕大多數有用的組合(和一些沒有用處的):
<p> <img src=frames.png width=515 height=414 alt="框架風格表">
<p>也可以參考<a href="abstractwidgets.html">抽象窗口部件類</a>。
<hr><h2>成員類型文檔</h2>
<h3 class=fn><a name="Shadow-enum"></a>QFrame::Shadow</h3>
<p> 這個枚舉類型定義了QFrame的框架所使用的三維效果。當前定義的效果有:
<ul>
<li><tt>QFrame::Plain</tt> - 框架和內容看來和周圍一樣高
<li><tt>QFrame::Raised</tt> - 框架和內容看起來凸起
<li><tt>QFrame::Sunken</tt> - 框架和內容看起來凹陷
<li><tt>QFrame::MShadow</tt> - 內部的,對于陰影的掩碼
</ul>
<p>Shadow和QFrame::Shape、<a href="#lineWidth">lineWidth</a>()和<a href="#midLineWidth">midLineWidth</a>()相互作用。類文檔中的<a href="#picture">框架的圖片</a>描繪的比這些詞語更好。
<p> <p>也可以參考<a href="#Shape-enum">QFrame::Shape</a>、<a href="#lineWidth-prop">lineWidth</a>和<a href="#midLineWidth-prop">midLineWidth</a>。
<h3 class=fn><a name="Shape-enum"></a>QFrame::Shape</h3>
<p> 這個枚舉類型定義了QFrame的框架所使用的外形。當前定義的效果有:
<ul>
<p> <li> NoFrame - QFrame不畫任何東西
<li> Box - QFrame在它的內容周圍畫一個框
<li> Panel - QFrame畫一個平板使內容看起來凸起或者凹陷
<li> WinPanel - 像<a href="#Shape-enum">Panel</a>,但QFrame繪制三維效果的方式和Microsoft Windows 95(及其它)的一樣
<li> ToolBarPanel - QFrame調用QStyle::drawToolBarPanel()
<li> MenuBarPanel - QFrame調用QStyle::drawMenuBarPanel()
<li> HLine - QFrame繪制一個水平線,但沒有框任何東西(作為分隔是有用的)
<li> VLine - QFrame繪制一個豎直線,但沒有框任何東西(作為分隔是有用的)
<li> StyledPanel - QFrame調用QStyle::drawPanel()
<li> PopupPanel - QFrame調用QStyle::drawPopupPanel()
<p> </ul>
<p> 當它不調用<a href="qstyle.html">QStyle</a>時,Shape和QFrame::Shadow、<a href="#lineWidth">lineWidth</a>()和<a href="#midLineWidth">midLineWidth</a>()相互作用來創建整個結果。類文檔中的<a href="#picture">框架的圖片</a>描繪的比這些詞語更好。
<p> <p>也可以參考<a href="#Shadow-enum">QFrame::Shadow</a>、<a href="qwidget.html#style">QFrame::style</a>()和<a href="qstyle.html#drawPrimitive">QStyle::drawPrimitive</a>()。
<hr><h2>成員函數文檔</h2>
<h3 class=fn><a name="QFrame"></a>QFrame::QFrame ( <a href="qwidget.html">QWidget</a> * parent = 0, const char * name = 0, WFlags f = 0 )
</h3>
構造一個框架風格為<a href="#Shape-enum">NoFrame</a>并且1像素框架寬度的框架窗口部件。
<p> <em>parent</em>、<em>name</em>和<em>f</em>參數被傳遞給<a href="qwidget.html">QWidget</a>的構造函數。
<h3 class=fn><a href="qrect.html">QRect</a> <a name="contentsRect"></a>QFrame::contentsRect () const
</h3>
<p>返回框架內的矩形。詳細情況請參考<a href="qframe.html#contentsRect-prop">“contentsRect”</a>屬性。
<h3 class=fn>void <a name="drawContents"></a>QFrame::drawContents ( <a href="qpainter.html">QPainter</a> * )<tt> [虛 保護]</tt>
</h3>
繪制框架內容的虛函數。
<p> 當你得到<a href="qpainter.html">QPainter</a>時,它已經被打開,并且在你離開時,它也必須是打開的。繪制工具的<a href="qpainter.html#setWorldMatrix">轉換</a>在真個過程中是被關閉的。如果你轉換繪制工具,記得考慮框架并且在返回前<a href="qpainter.html#resetXForm">重置轉換</a>。
<p> 這個函數在子類中被重新實現用來繪制框架中的一些東西。它只能在<a href="#contentsRect">contentsRect</a>()內繪制。默認函數什么都不做。
<p> <p>也可以參考<a href="#contentsRect-prop">contentsRect</a>和<a href="qpainter.html#setClipRect">QPainter::setClipRect</a>()。
<p>在<a href="qlabel.html#drawContents">QLabel</a>、a href="qlcdnumber.html#drawContents">QLCDNumber</a>、<a href="qmenubar.html#drawContents">QMenuBar</a>和<a href="qpopupmenu.html#drawContents">QPopupMenu</a>中重新實現。
<h3 class=fn>void <a name="drawFrame"></a>QFrame::drawFrame ( <a href="qpainter.html">QPainter</a> * p )<tt> [虛 保護]</tt>
</h3>
使用繪制工具<em>p</em>和當前框架屬性和顏色組繪制框架。框架內的矩形不受影響。
<p> 這個函數是虛函數,但通常情況下你不需要重新實現它。如果你要做,注意<a href="qpainter.html">QPainter</a>已經被打開并且必須保持打開的狀態。
<p> <p>也可以參考<a href="#frameRect-prop">frameRect</a>、<a href="#contentsRect-prop">contentsRect</a>、<a href="#drawContents">drawContents</a>()、a href="#frameStyle">frameStyle</a>()和<a href="qwidget.html#palette-prop">palette</a>。
<h3 class=fn>void <a name="frameChanged"></a>QFrame::frameChanged ()<tt> [虛 保護]</tt>
</h3>
當框架風格、線寬和中間線寬發生改變時,這個虛函數被調用。
<p> 這個函數在子類中可以被重新實現,它需要知道什么時候框架屬性發生變化。
<p> 默認實現是調用<a href="qwidget.html#update">update</a>()。
<h3 class=fn><a href="qrect.html">QRect</a> <a name="frameRect"></a>QFrame::frameRect () const
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -