Qtウィジェットの変更点

Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。

私たちは各リリースにおいて、すべてのパブリックAPIのバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするために避けられない変更もあります。

このトピックでは、Qt ウィジェットにおけるそれらの変更点を要約し、それらを扱うためのガイダンスを提供します。

カーネルクラス

QWidget クラス

仮想QWidget::enterEvent() ハンドラは、プレーンなQEvent* ではなく、ポインタの位置に関する情報を持つQEnterEvent* パラメータを受け取るようになりました。

QDesktopWidgetとQApplication::desktop()

QDesktopWidget は Qt 5 で既に非推奨となり、Qt 6 では QApplication::desktop() と共に削除されました。

QScreen は、利用可能なスクリーン、仮想デスクトップを形成するスクリーン、およびスクリーンのジオメトリに関する情報を照会する同等の機能を提供します。

QWidget::setScreen() を使用して、特定のディスプレイ上にQWidget を作成します。これは、仮想デスクトップセットアップのスクリーンにウィジェットを移動するものではないことに注意してください。

QAction、QActionGroup

これらのクラスはQtGui モジュールに移動されました。QtWidgetsQAction::menu ()やQAction::setMenu ()など)で定義された型に依存するメンバ関数は、呼び出されたときにのみインスタンス化されるテンプレートとして実装されています。

ウィジェット

QAbstractButton クラス

QAbstractButton::animateClick() のデフォルト・タイムアウト・パラメータが削除され、qOverload を必要としない最新の接続構文が可能になりました。

QComboBox クラス

QComboBox::setModel() 関数が仮想化されました。

QDateTimeEdit クラス

QDateTimeEdit インスタンスの time-spec と一致しない日付時刻でQDateTimeEdit::setDateTime() が呼び出された場合、その日付時刻はQDateTimeEdit の time-spec に変換されます。これにより、同じ瞬間の時刻を記述する日付時刻が得られますが、QDateTimeEdit が使用するのと同じ用語で記述されます。以前は、渡されたdate-timeの日付と時刻は、date-timeのtime-specを無視して、ウィジェットのtime-specと結合されていました。

アイテムビュー

QAbstractItemView クラス

以前はQStyleOptionViewItem オブジェクトを返していた仮想 viewOptions() メソッドは initViewItemOption に名前が変更され、ポインタを通して渡されるQStyleOptionViewItem オブジェクトを初期化します。

バージョン管理されたQStyleOption サブクラスはすべて統合され、バージョン番号は 1 にリセットされました。

ウィジェット・クラスのさまざまなinitStyleOption()メソッドが仮想になりました。

スタイルシートの変更

Qt 5 と Qt 6 では、プロパティによるウィジェットのスタイリングが異なります。Qt 5 では、このようなプロパティのセレクタ値は enum 値の整数値ですが、Qt 6 では文字列値が使用されます。次の例はこの違いを示しています:

// Qt 5 style sheet
QToolButton[popupMode="1"] {
    padding-right: 20px;
}
// Qt 6 style sheet
QToolButton[popupMode=MenuButtonPopup] {
    padding-right: 20px;
}

ユーティリティクラス

QUndoCommand、QUndoStack、QUndoGroup

Undo/Redo フレームワークのウィジェットに依存しないクラスは、QtGui モジュールに移動しました。

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