Qt Quick Controls QML Types

Qt Quick Controlsは、ユーザーインターフェースを作成するためのQML型を提供します。これらのQMLタイプは Qt QuickQt Quick Layouts と連携して動作します。

Qt Quick Controls QMLタイプは、.qmlファイル中の以下のimportステートメントを使ってアプリケーションにインポートすることができます:

import QtQuick.Controls

QMLタイプ

AbstractButton

ボタンに共通する機能を提供する抽象的な基本型

Action

抽象的なユーザーインターフェースのアクション

ActionGroup

アクションをグループ化

ApplicationWindow

ヘッダーとフッターをサポートするスタイル付きトップレベルウィンドウ

BusyIndicator

コンテンツの読み込み中など、バックグラウンドでの活動を示す

Button

クリックすることでコマンドを実行したり、質問に答えたりできるプッシュボタン

ButtonGroup

相互に排他的なチェック可能ボタンのグループ

Calendar

カレンダー名前空間

CalendarModel

カレンダーモデル

CheckBox

オン/オフの切り替えが可能なチェックボタン

CheckDelegate

オン・オフを切り替えられるチェック・インジケータを持つ項目デリゲート

ComboBox

オプションを選択するためのボタンとポップアップリストの組み合わせ

Container

コンテナに共通する機能を提供する抽象基底型

Control

すべてのコントロールに共通する機能を提供する抽象ベース・タイプ

DayOfWeekRow

一週間の曜日名の列

DelayButton

長く押し続けるとトリガーされるチェックボタン

Dial

値を設定するために回転する円形ダイヤル

Dialog

標準的なボタンとタイトルを持つポップアップダイアログ。

DialogButtonBox

ダイアログで使用されるボタンボックス

Drawer

スワイプジェスチャーで開閉できるサイドパネル

Frame

論理的なコントロールグループのビジュアルフレーム

GroupBox

論理的なコントロールグループのビジュアルフレームとタイトル

HorizontalHeaderView

TableViewに付随する水平ヘッダービューの提供

ItemDelegate

さまざまなビューやコントロールで使用できる基本アイテムデリゲート

Label

フォントを継承したスタイル付きテキストラベル

Menu

コンテキストメニューまたはポップアップメニューとして使用できるポップアップ

MenuBar

ウィンドウのメニューバーを提供

MenuBarItem

MenuBar内にドロップダウンメニューを表示する

MenuItem

メニュー内の項目を表示する

MenuSeparator

メニュー内の項目グループを隣接する項目から分離する

MonthGrid

カレンダーの月の曜日のグリッド

Overlay

ポップアップ用のウィンドウ・オーバーレイ

Page

ヘッダーとフッターをサポートするスタイル付きページコントロール

PageIndicator

現在アクティブなページを表示

Pane

アプリケーションのスタイルとテーマにマッチした背景を提供します。

Popup

ポップアップのようなユーザー・インターフェース・コントロールのベース・タイプ

ProgressBar

操作の進行状況を表示

RadioButton

オン/オフの切り替えが可能な専用ラジオボタン

RadioDelegate

オン/オフの切り替えが可能なラジオ・インジケータを持つ排他的項目デリゲート

RangeSlider

トラックに沿って2つのハンドルをスライドさせることにより、値の範囲を選択するために使用される

RoundButton

ユーザーがクリックできる角丸の押しボタンコントロール

ScrollBar

垂直または水平のインタラクティブスクロールバー

ScrollIndicator

垂直または水平の非対話型スクロールインジケータ

ScrollView

スクロール可能なビュー

SelectionRectangle

TableView内のテーブルセルを選択するために使用

Slider

トラックに沿ってハンドルをスライドさせて値を選択するために使用されます。

SpinBox

ユーザーがプリセット値のセットから選択できるようにします。

SplitHandle

SplitViewハンドルの付属プロパティを提供します。

SplitView

各項目の間にドラッグ可能なスプリッタを使用して項目をレイアウトします。

StackView

スタックベースのナビゲーションモデルを提供

SwipeDelegate

スワイプ可能なアイテムデリゲート

SwipeView

ユーザーが横にスワイプしてページを移動できるようにする

Switch

オン/オフの切り替えが可能なボタン

SwitchDelegate

オン/オフの切り替えが可能なスイッチ・インジケータを持つアイテム・デリゲート

TabBar

ユーザーが異なるビューやサブタスクを切り替えられるようにする

TabButton

タブバーに適した外観のボタン

TextArea

複数行テキスト入力エリア

TextField

1行テキスト入力フィールド

ToolBar

コンテキスト依存コントロールのコンテナ

ToolButton

ToolBarに適した外観のボタン

ToolSeparator

ツールバーのアイテムグループを隣接するアイテムから分離する

ToolTip

任意のコントロールにツール・ヒントを提供する

TreeViewDelegate

TreeViewに割り当てることができるデリゲート

Tumbler

選択可能なアイテムの回転ホイール

VerticalHeaderView

TableViewに付随する垂直ヘッダー表示

WeekNumberColumn

週番号の列

プロパティ宣言でQt Quick Controls 型を使用する

で述べたように Qt Quick Templates 2 QML Typesで述べたように、Qt Quick Controls の各型は、C++ の「テンプレート」型によってサポートされています。これらの型は、コントロールのロジックと動作の非ビジュアル実装です。

例えば、Menu 型の API と動作は、Qt Quick Templates の C++ 型によって定義されます。Menuを提供したい各スタイルは、Menu.qmlを利用できるようにする必要があり、そのファイルのルートアイテムはQt Quick TemplatesのMenuでなければなりません。QtQuick.ControlsをインポートしてQMLでMenuを作成すると、実際に得られる型はスタイルのMenu.qmlで定義されたQML Menuになります。

コントロールをプロパティ宣言の型として使用するには、Qt Quick Templatesから対応する型を使用する必要があります。例えば、PopupOpener 、Popupを開くButtonというコンポーネントがあったとします:

// PopupButton.qml
import QtQuick.Controls

Button {
    required property Popup popup

    onClicked: popup.open()
}

// main.qml
PopupButton {
    popup: saveChangesDialog
}

Dialog {
    id: saveChangesDialog

    // ...
}

このコードを実行するとエラーになります:

Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE

これは継承階層のためです:

Popup (C++ type in QtQuick.Templates)
│   └── Popup (QML type in QtQuick.Controls)
└── Dialog (C++ type in QtQuick.Templates)
    └── Dialog (QML type in QtQuick.Controls)

QtQuick.Controls の Dialog はQtQuick.Controls の Popup から派生するのではなく、QtQuick.Templates から派生します。

代わりに、Qt Quick TemplatesのPopupをプロパティタイプとして使用してください:

// PopupButton.qml
import QtQuick.Controls
import QtQuick.Templates as T

Button {
    required property T.Popup popup

    onClicked: popup.open()
}

Qt Quick Controls モジュールの詳細については Qt Quick Controlsモジュールのドキュメントを参照してください。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.