概要
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="属性名" とし、その子要素でメニュー文字列、ショートカットキー等を指定する