「ドックウィジェット」の編集履歴(バックアップ)一覧はこちら
「ドックウィジェット」(2014/09/08 (月) 15:52:56) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**見出し
#contents()
**QMainWindow クラス - ドックウィジェット
QMainWindow クラスのドックウィジェット関係の機能を紹介しています。
[[公式リファレンス>http://qt-project.org/doc/qt-5/qmainwindow.html]]
**ドックウィジェットとは
ドックウィジェットとはメインウィンドウにドッキングしたり、切り離したりできるウィジェットです。
ドックウィジェットは QDockWidget クラスで実装されています。
**継承関係
[[QObject]]
[[QPaintDevice]]
┗[[QWidget]]
┣[[QMainWindow]]
┗[[QDockWidget]]
**関連するメソッド
***ドックウィジェットを追加する
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)
このメインウィンドウに指定ドックウィジェットを指定領域に追加します。
>パラメータ
-dockwidget 追加するドックウィジェット
-area 追加する領域
>enum Qt::DockWidgetArea
>flags Qt::DockWidgetAreas
|キー|値|説明|
|Qt::LeftDockWidgetArea|0x1|左のドックエリア|
|Qt::RightDockWidgetArea|0x2|右のドックエリア|
|Qt::TopDockWidgetArea|0x4|上のドックエリア|
|Qt::BottomDockWidgetArea|0x8|下のドックエリア|
|Qt::AllDockWidgetAreas|DockWidgetArea_Mask|使用しません|
|Qt::NoDockWidgetArea|0|Null|
----
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation)
このメインウィンドウに指定ドックウィジェットを指定領域の指定方向に追加します。
>パラメータ
-dockwidget 追加するドックウィジェット
-area 追加する領域
-orientation 追加する方向
>enum Qt::Orientation
>flags Qt::Orientations
|キー|値|説明|
|Qt::Horizontal|0x1|水平方向|
|Qt::Vertical|0x2|垂直方向|
***ドックウィジェット領域
Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const
指定した角を占領している領域を返します。
>corner 調べる領域
----
void QMainWindow::setCorner(Qt::Corner corner, Qt::DockWidgetArea area)
指定した角に指定ドックウィジェット領域を設定します。
***ドックウィジェットの場所を取得する
Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget * dockwidget) const
指定ドックウィジェットが配置されている領域を返します。
指定ドックウィジェットがこのメインウィンドウに追加されていない場合は、Qt::NoDockWidgetArea を返します。
***ドックウィジェットを解除する
void QMainWindow::removeDockWidget(QDockWidget * dockwidget)
このメインウィンドウから指定ドックウィジェットを解除して見えなくします。
>注意
指定ドックウィジェットが削除されるわけではありません。
***ドックウィジェットを復元する
bool QMainWindow::restoreDockWidget(QDockWidget * dockwidget)
restoreState() を呼び出した後に指定ドックウィジェットが生成された場合は、そのドックウィジェットの状態を復元します。
状態が復元された場合はtrue、そうでない場合はfalseを返します。
***タブ化されたドックウィジェット
QTabWidget::TabPosition QMainWindow::tabPosition(Qt::DockWidgetArea area) const
指定ドックウィジェット領域のタブが表示される位置を返します。
----
void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)
指定ドックウィジェット領域のタブが表示される位置を設定します。
デフォルトでは、すべてのドックウィジェット領域は下にタブが表示されます。
----
QList<QDockWidget *> QMainWindow::tabifiedDockWidgets(QDockWidget * dockwidget) const
指定ドックウィジェットが配置されているタブに存在するドックウィジェットを返します。。
***2つのドックウィジェットをタブ化する
void QMainWindow::tabifyDockWidget(QDockWidget * first, QDockWidget * second)
2つ目の指定ドックウィジェットを最初の指定ドックウィジェットの領域に移動し、タブ化したドックウィジェット領域を生成します。
その際は2つ目の指定ドックウィジェットが選択された状態になります。
***ドックウィジェット領域を分割する
void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation)
最初の指定ドックウィジェットが配置されている領域を指定方向に分割します。
次に最初の指定ドックウィジェットは1番のサブ領域、2つ目の指定ドックウィジェットは2番のサブ領域に移動します。
>パラメータ
-first このドックウィジェットが配置されている領域が分割されます
-second 移動するドックウィジェット
-orientation 分割方向
Qt::Horizontal の場合は、縦に分割して上から1番のサブ領域、2番のサブ領域となります。
Qt::Vertical の場合は、横に分割して左から1番のサブ領域、2番のサブ領域となります。
>注意
最初の指定ドックウィジェットがタブ化されたドックウィジェットの場合は、2つ目の指定ドックウィジェットはタブに追加され、領域は分割されません。
その際は最初の指定ドックウィジェットが選択された状態になります。
***プロパティ
animated : bool
bool isAnimated() const
void setAnimated(bool enabled)
ドックウィジェット及びツールバーの操作をアニメーションにするかどうかを取得及び設定します。
デフォルトは、trueです。
----
dockNestingEnabled : bool
bool isDockNestingEnabled() const
void setDockNestingEnabled(bool enabled)
ドックウィジェットを入れ子にできるかどうかを取得及び設定します。
falseの場合は、一つのドックウィジェット領域においてドックウィジェットを配置できるのは水平方向または垂直方向に一行のみとなります。
trueの場合は、一つのドックウィジェット領域を分割し、水平方向または垂直方向に複数行ドックウィジェットを配置できます。
この設定は setDockOptions() で AllowNestedDocks を設定するのと同じです。
----
dockOptions : DockOptions
DockOptions dockOptions() const
void setDockOptions(DockOptions options)
QMainWindow のドックウィジェットの挙動を取得及び設定します。
デフォルトは、AnimatedDocks | AllowTabbedDocks です。
>enum QMainWindow::DockOption
>flags QMainWindow::DockOptions
|キー|値|説明|
|QMainWindow::AnimatedDocks|0x01|animated プロパティと同じです。|
|QMainWindow::AllowNestedDocks|0x02|dockNestingEnabled プロパティと同じです。|
|QMainWindow::AllowTabbedDocks|0x04|ユーザーがあるドックウィジェットを他のドックウィジェットの上にドロップするとタブ化されて一つのドックウィジェットにまとめられます。|
|QMainWindow::ForceTabbedDocks|0x08|各領域はタブ化された一つのドックウィジェットのみを含みます。あるドックウィジェットを他のドックウィジェットの隣に配置することはできません。|
|QMainWindow::VerticalTabs|0x10|左右の領域ではタブ化されたドックウィジェットのタブバーは縦に表示されます。この値を設定しない場合は、すべてのタブバーは下に表示されます。この値を設定した場合は AllowTabbedDocks も設定されます。|
>注意
こういったオプションは QMainWindow においてドックウィジェットをどのようにドロップすることができるかのみをコントロールします。
この設定を変更した際に既に配置されているドックウィジェットが再配置されることはありません。
このため、こういったオプションはメインウィンドウにドックウィジェットを追加する前に設定するべきです。
例外として AnimatedDocks 及び VerticalTabs はいつでも設定することができます。
----
documentMode : bool
bool documentMode() const
void setDocumentMode(bool enabled)
タブ化されたドックウィジェットのタブバーがドキュメントモードかどうかを取得及び設定します。
デフォルトは、falseです。
----
tabShape : QTabWidget::TabShape
QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape tabShape)
タブ化されたドックウィジェットのタブの鋭さを取得及び設定します。
デフォルトは、QTabWidget::Rounded です。
**見出し
#contents()
**QMainWindow クラス - ドックウィジェット
QMainWindow クラスのドックウィジェット関係の機能を紹介しています。
[[公式リファレンス>http://qt-project.org/doc/qt-5/qmainwindow.html]]
**ドックウィジェットとは
ドックウィジェットとはメインウィンドウにドッキングしたり、切り離したりできるウィジェットです。
ドックウィジェットは QDockWidget クラスで実装されています。
**継承関係
[[QObject]]
[[QPaintDevice]]
┗[[QWidget]]
┣[[QMainWindow]]
┗[[QDockWidget]]
**関連するメソッド
***ドックウィジェットを追加する
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)
このメインウィンドウに指定ドックウィジェットを指定領域に追加します。
>パラメータ
-dockwidget 追加するドックウィジェット
-area 追加する領域
>enum Qt::DockWidgetArea
>flags Qt::DockWidgetAreas
|キー|値|説明|
|Qt::LeftDockWidgetArea|0x1|左のドックエリア|
|Qt::RightDockWidgetArea|0x2|右のドックエリア|
|Qt::TopDockWidgetArea|0x4|上のドックエリア|
|Qt::BottomDockWidgetArea|0x8|下のドックエリア|
|Qt::AllDockWidgetAreas|DockWidgetArea_Mask|使用しません|
|Qt::NoDockWidgetArea|0|Null|
----
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation)
このメインウィンドウに指定ドックウィジェットを指定領域の指定方向に追加します。
>パラメータ
-dockwidget 追加するドックウィジェット
-area 追加する領域
-orientation 追加する方向
>enum Qt::Orientation
>flags Qt::Orientations
|キー|値|説明|
|Qt::Horizontal|0x1|水平方向|
|Qt::Vertical|0x2|垂直方向|
***ドックウィジェット領域
Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const
指定した角を占領している領域を返します。
>corner 調べる領域
----
void QMainWindow::setCorner(Qt::Corner corner, Qt::DockWidgetArea area)
指定した角に指定ドックウィジェット領域を設定します。
***ドックウィジェットの場所を取得する
Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget * dockwidget) const
指定ドックウィジェットが配置されている領域を返します。
指定ドックウィジェットがこのメインウィンドウに追加されていない場合は、Qt::NoDockWidgetArea を返します。
***ドックウィジェットを解除する
void QMainWindow::removeDockWidget(QDockWidget * dockwidget)
このメインウィンドウから指定ドックウィジェットを解除して見えなくします。
>注意
指定ドックウィジェットが削除されるわけではありません。
***ドックウィジェットを復元する
bool QMainWindow::restoreDockWidget(QDockWidget * dockwidget)
restoreState() を呼び出した後に指定ドックウィジェットが生成された場合は、そのドックウィジェットの状態を復元します。
状態が復元された場合はtrue、そうでない場合はfalseを返します。
***タブ化されたドックウィジェット
QTabWidget::TabPosition QMainWindow::tabPosition(Qt::DockWidgetArea area) const
指定ドックウィジェット領域のタブが表示される位置を返します。
----
void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)
指定ドックウィジェット領域のタブが表示される位置を設定します。
デフォルトでは、すべてのドックウィジェット領域は下にタブが表示されます。
----
QList<QDockWidget *> QMainWindow::tabifiedDockWidgets(QDockWidget * dockwidget) const
指定ドックウィジェットが配置されているタブに存在するドックウィジェットを返します。。
***2つのドックウィジェットをタブ化する
void QMainWindow::tabifyDockWidget(QDockWidget * first, QDockWidget * second)
2つ目の指定ドックウィジェットを最初の指定ドックウィジェットの領域に移動し、タブ化したドックウィジェット領域を生成します。
その際は2つ目の指定ドックウィジェットが選択された状態になります。
***ドックウィジェット領域を分割する
void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation)
最初の指定ドックウィジェットが配置されている領域を指定方向に分割します。
次に最初の指定ドックウィジェットは1番のサブ領域、2つ目の指定ドックウィジェットは2番のサブ領域に移動します。
>パラメータ
-first このドックウィジェットが配置されている領域が分割されます
-second 移動するドックウィジェット
-orientation 分割方向
Qt::Horizontal の場合は、縦に分割して上から1番のサブ領域、2番のサブ領域となります。
Qt::Vertical の場合は、横に分割して左から1番のサブ領域、2番のサブ領域となります。
>注意
最初の指定ドックウィジェットがタブ化されたドックウィジェットの場合は、2つ目の指定ドックウィジェットはタブに追加され、領域は分割されません。
その際は最初の指定ドックウィジェットが選択された状態になります。
***プロパティ
animated : bool
bool isAnimated() const
void setAnimated(bool enabled)
ドックウィジェット及びツールバーの操作をアニメーションにするかどうかを取得及び設定します。
デフォルトは、trueです。
----
dockNestingEnabled : bool
bool isDockNestingEnabled() const
void setDockNestingEnabled(bool enabled)
ドックウィジェットを入れ子にできるかどうかを取得及び設定します。
falseの場合は、一つのドックウィジェット領域においてドックウィジェットを配置できるのは水平方向または垂直方向に一行のみとなります。
trueの場合は、一つのドックウィジェット領域を分割し、水平方向または垂直方向に複数行ドックウィジェットを配置できます。
この設定は setDockOptions() で AllowNestedDocks を設定するのと同じです。
----
dockOptions : DockOptions
DockOptions dockOptions() const
void setDockOptions(DockOptions options)
QMainWindow のドックウィジェットの挙動を取得及び設定します。
デフォルトは、AnimatedDocks | AllowTabbedDocks です。
>DockOptions
DockOptions 型は QFlags<DockOption> の typedef です。
>enum QMainWindow::DockOption
>flags QMainWindow::DockOptions
|キー|値|説明|
|QMainWindow::AnimatedDocks|0x01|animated プロパティと同じです。|
|QMainWindow::AllowNestedDocks|0x02|dockNestingEnabled プロパティと同じです。|
|QMainWindow::AllowTabbedDocks|0x04|ユーザーがあるドックウィジェットを他のドックウィジェットの上にドロップするとタブ化されて一つのドックウィジェットにまとめられます。|
|QMainWindow::ForceTabbedDocks|0x08|各領域はタブ化された一つのドックウィジェットのみを含みます。あるドックウィジェットを他のドックウィジェットの隣に配置することはできません。|
|QMainWindow::VerticalTabs|0x10|左右の領域ではタブ化されたドックウィジェットのタブバーは縦に表示されます。この値を設定しない場合は、すべてのタブバーは下に表示されます。この値を設定した場合は AllowTabbedDocks も設定されます。|
>注意
こういったオプションは QMainWindow においてドックウィジェットをどのようにドロップすることができるかのみをコントロールします。
この設定を変更した際に既に配置されているドックウィジェットが再配置されることはありません。
このため、こういったオプションはメインウィンドウにドックウィジェットを追加する前に設定するべきです。
例外として AnimatedDocks 及び VerticalTabs はいつでも設定することができます。
----
documentMode : bool
bool documentMode() const
void setDocumentMode(bool enabled)
タブ化されたドックウィジェットのタブバーがドキュメントモードかどうかを取得及び設定します。
デフォルトは、falseです。
----
tabShape : QTabWidget::TabShape
QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape tabShape)
タブ化されたドックウィジェットのタブの鋭さを取得及び設定します。
デフォルトは、QTabWidget::Rounded です。