Qt小部件的更改

Qt 6是经过故意努力使框架更高效、更易用的结果。

我们试图在每次发布中保持所有公开API的二进制和源兼容性。但为了使Qt成为一个更好的框架,一些更改是不可避免的。

在本主题中,我们总结了Qt小部件的这些更改,并提供处理它们的指导。

内核类

The QWidget类

虚拟QWidget::enterEvent()处理程序现在接收一个QEnterEvent*参数,其中包含指针位置信息,而不是一个普通的QEvent*。

QDesktopWidget和QApplication::desktop()

QDesktopWidget已在Qt 5中弃用,并在Qt 6中被删除,连同QApplication::desktop()。

QScreen提供查询可用屏幕信息、构成虚拟桌面的屏幕以及屏幕几何形状的等效功能。

使用QWidget::setScreen()在特定显示器上创建QWidget;请注意,这不会将小部件移动到虚拟桌面设置中的屏幕。

QAction,QActionGroup

这些类已移动到QtGui模块。依赖于在QtWidgets中定义的类型(如QAction::menu()和QAction::setMenu)的成员函数实现为模板,只有在调用时才会实例化。

控件

The QAbstractButton类

QAbstractButton::animateClick()的默认超时参数已被移除,以允许使用现代连接语法,无需使用qOverload

The QComboBox类

现在QComboBox::setModel()函数是虚拟的。

The QDateTimeEdit类

当调用QDateTimeEdit::setDateTime() 并传入一个时间戳与QDateTimeEdit实例的时间戳不匹配时,该时间戳会被转换为QDateTimeEdit实例的时间戳格式。这使得得到的时间戳描述了相同的时间点,但使用了与QDateTimeEdit相同的术语。之前,传入的日期和时间的日期与时间戳的组合与控件的时间戳相结合,忽略了时间戳;这可能描述了与传递的日期时间不同的时间点。

ItemViews

QAbstractItemView类

之前返回QStyleOptionViewItem对象的虚拟视图选项()方法已重命名为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

Undo/Redo框架的不依赖于小部件的类已移动到QtGui模块中。

© 2024 Qt公司版权所有。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据免费软件基金会发布的GNU自由文档许可协议版本1.3的条款许可的。Qt和相应的徽标是芬兰的和/或世界各地的Qt公司的商标。所有其他商标均为各自所有者的财产。