QtQuick 模板弹出窗口与 QtQuick Controls 弹出窗口

标签 qt qt5 qtquick2 qt-quick qtquickcontrols2

Qt Quick Templates 弹出窗口与 QtQuick Controls 弹出窗口有什么区别?

我从 import QtQuick.Templates 2.0import QtQuick.Controls 2.0 获得的弹出窗口似乎存在细微的行为差异。

[1] https://doc-snapshots.qt.io/qt5-5.8/qml-qtquick-controls2-popup.html

[2] http://doc.qt.io/qt-5/qtquick-templates2-qmlmodule.html

最佳答案

模板只是实际控件的逻辑骨架,没有图形部分,控件的弹出窗口只是模板弹出窗口的装饰版本:

//Popup.qml
import QtQuick 2.6
import QtQuick.Templates 2.0 as T

T.Popup {
    id: control

    implicitWidth: Math.max(background ? background.implicitWidth : 0,
                            contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0)
    implicitHeight: Math.max(background ? background.implicitHeight : 0,
                             contentWidth > 0 ? contentHeight + topPadding + bottomPadding : 0)

    contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
    contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)

    padding: 12

    contentItem: Item { }

    background: Rectangle {
        border.color: "#353637"
    }
}

所以实际上不应该有任何行为差异。

关于QtQuick 模板弹出窗口与 QtQuick Controls 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176083/

相关文章:

qt - 什么是 'System Usage Specification' ?

regex - 使用 QRegExp 的双值正则表达式

qt - 如何从qml访问ListView的当前项目

qt - 如何为 QML 布局中的项目提供特定间距?

qt - QML TableView 从委托(delegate)访问模型属性

c++ - 在 Qml 代码中编辑 C++ QList<Object*> 模型的问题和一些 Qml 警告

c++ - Qt C++ xor 用于校验和?

mysql - 尝试使用 ODBC 在 Windows 中从 qt 写入 MS Sql 数据库时查询执行失败

c++ - 使用 QSqlTableModel 获取重复记录

c++ - 检查应用程序是否首次运行