변경 사항 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 인스턴스의 시간 사양과 일치하지 않는 날짜-시간으로 QDateTimeEdit::setDateTime()를 호출하면 날짜-시간이 QDateTimeEdit 의 시간 사양으로 변환됩니다. 이렇게 하면 동일한 순간을 설명하는 날짜-시간이 제공되지만 QDateTimeEdit 에서 사용하는 것과 동일한 용어로 변환됩니다. 이전에는 전달된 날짜-시간의 날짜-시간이 위젯의 시간 사양과 결합되어 날짜-시간의 시간 사양을 무시하고 전달된 날짜-시간이 설명하는 것과 다른 시점을 설명할 수 있었습니다.

아이템 뷰

QAbstractItemView 클래스

이전에 QStyleOptionViewItem 객체를 반환하던 가상 viewOptions() 메서드의 이름이 initViewItemOption으로 변경되었으며, 포인터를 통해 전달된 QStyleOptionViewItem 객체를 초기화합니다.

모든 버전이 지정된 QStyleOption 하위 클래스가 통합되고 버전 번호가 1로 재설정됩니다.

위젯 클래스의 다양한 initStyleOption() 메서드는 이제 가상 메서드입니다.

스타일 시트 변경

Qt 5와 Qt 6에서 프로퍼티로 위젯을 스타일링하는 방식은 특히 프로퍼티가 열거형인 경우 다릅니다. 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

실행 취소/다시 실행 프레임워크의 위젯 독립 클래스가 QtGui 모듈로 옮겨졌습니다.

© 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.