ドックウィジェット


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

見出し


QMainWindow クラス - ドックウィジェット

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 です。