変更点Qt Widgets
Qt 6 における変更点は、フレームワークをより効率的で使いやすくするための意図的な取り組みの結果です。
各リリースにおいて、すべての公開 API についてバイナリおよびソースの互換性を維持するよう努めています。しかし、Qt をより優れたフレームワークにするための取り組みにおいて、一部の変更は避けられませんでした。
このトピックでは、Qt Widgets におけるそれらの変更点をまとめ、それらに対処するためのガイダンスを提供します。
カーネルクラス
QWidget クラス
仮想関数 `QWidget::enterEvent()` のハンドラは、単純な `QEvent*` ではなく、ポインタの位置に関する情報を含む `QEnterEvent*` パラメータを受け取るようになりました。
QDesktopWidget および QApplication::desktop()
QDesktopWidgetはQt 5ですでに非推奨となっており、Qt 6ではQApplication::desktop()とともに削除されました。
QScreen は、利用可能なスクリーン、仮想デスクトップを構成するスクリーン、およびスクリーンのジオメトリに関する情報を照会するための同等の機能を提供します。
QWidget::setScreen() を使用して、特定のディスプレイ上にQWidget を作成します。なお、これは仮想デスクトップ設定内のスクリーンにウィジェットを移動させるものではないことに注意してください。
QAction、QActionGroup
これらのクラスは、QtGui モジュールに移動されました。QtWidgets で定義された型に依存するメンバ関数(QAction::menu() やQAction::setMenu() など)は、呼び出されたときにのみインスタンス化されるテンプレートとして実装されています。
ウィジェット
QAbstractButton クラス
QAbstractButton::animateClick() のデフォルトのタイムアウトパラメータが削除され、qOverload を使用せずに最新の接続構文が使用できるようになりました。
QComboBox クラス
QComboBox::setModel() 関数は、仮想関数になりました。
QDateTimeEdit クラス
QDateTimeEdit::setDateTime() が、QDateTimeEdit インスタンスの時間指定と一致しない日時引数で呼び出された場合、その日時がQDateTimeEdit の時間指定に変換されます。これにより、同じ瞬間を表す日時が得られますが、QDateTimeEdit が使用するのと同じ形式で表現されます。 以前は、渡された日時から取得した日付と時刻が、その日時の時間指定を無視してウィジェットの時間指定と組み合わされていました。これにより、渡された日時が表す時刻とは異なる時点が表現されてしまう可能性がありました。
ItemViews
QAbstractItemView クラス
以前はQStyleOptionViewItem オブジェクトを返していた仮想メソッド viewOptions() は、initViewItemOption に名前が変更され、ポインタを介して渡されたQStyleOptionViewItem オブジェクトを初期化するようになりました。
スタイリングクラスおよび関連 API
バージョン管理されていたすべてのQStyleOption サブクラスが統合され、バージョン番号は 1 にリセットされました。
ウィジェットクラス内のさまざまな initStyleOption() メソッドは、仮想メソッドになりました。
スタイルシートの変更
Qt 5 と Qt 6 では、プロパティによるウィジェットのスタイル設定の方法が異なります。特に、そのプロパティが列挙型(enum)である場合は顕著です。Qt 5 では、そのようなプロパティのセレクタ値は列挙型の値に相当する整数ですが、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 モジュールに移動されました。
© 2026 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.