概要
QMainWindow 新規 ui ファイル
下図は、メインウィンドウを QMainWindow クラスにした時に、生成される ui フォーム。
下記ソースは、上記の ui ファイルを、テキストエディタで開いたもの。
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle" >
<string>MainWindow</string>
</property>
<widget class="QMenuBar" name="menuBar" />
<widget class="QToolBar" name="mainToolBar" />
<widget class="QWidget" name="centralWidget" />
<widget class="QStatusBar" name="statusBar" />
</widget>
<layoutDefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>
<resources/>
<connections/>
</ui>
- 中身は XML
- 文字コードは UTF-8
- トップレベル要素は ui
- 下位要素:class, widget, layoutDefault, pixmapfunction, resources, connections がある
- widget はプロパティを持ち、子widget を子要素として持つことが出来る
- メニュー、ツールバー、セントラルウィジット、ステータスバー がメインウィンドウの子ウィジット要素になっている
- widget の位置、ウィンドウタイトルなどの属性は、property 要素を子要素として指定している
メニューを追加した場合
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>24</height>
</rect>
</property>
<widget class="QMenu" name="menu_File">
<property name="title">
<string>&File</string>
</property>
<addaction name="action_New"/>
</widget>
<addaction name="menu_File"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="action_New">
<property name="text">
<string>&New</string>
</property>
<property name="shortcut">
<string>Ctrl+N</string>
</property>
</action>
</widget>
- トップメニューを追加すると、QMenu ウィジットに、QMenuクラス, addactin が追加される。
- 複数のメニュー項目がある場合は、addaction 要素が並ぶ。
- 階層メニューがある場合は、QMenu クラスがさらに追加される。
- アクションは別途、action 要素が追加される
- アクション要素は、property name="属性名" とし、その子要素でメニュー文字列、ショートカットキー等を指定する