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モジュールのドキュメントを参照してください。

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。