qt - 如何在SwipeView中防止页面手动滑动

标签 qt qml qtquick2 qtquickcontrols2

如何在SwipeView中防止页面手动滑动?我想仅通过与按钮交互来滑动当前索引。我怎样才能做到这一点?这是我的 QML 代码:

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
import QtQuick.Controls.Material 2.0

ApplicationWindow {

    property int globalForJs: 10;

    id: mainWindow
    visible: true
    width: 1024
    height: 768
    color: '#ffffff'
    signal qmlSignal(string msg)

    TopPanel {
        id: topPanel1
    }

    SwipeView {
        id: view
        currentIndex: 0
        anchors.fill: parent

        Rectangle {
            id: firstPage
            color: "red"
        }

        Rectangle {
            id: secondPage
            color: "blue"
        }
    }


    BottomPanel {
        id: bottomPanel1
    }    
}

最佳答案

交互式属性 was added recently ,并将在 Qt 5.8 alpha 中提供。

如果你不能使用5.8,并且你知道 contentItem 的类型是 Flickable (目前适用于所有内置样式),您可以将其 interactive 属性设置为 false:

Component.onCompleted: contentItem.interactive = false

关于qt - 如何在SwipeView中防止页面手动滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624940/

相关文章:

qt - 在 CLion 中使用 CMake 构建项目时,QQmlApplicationEngine 不接受正确的 QML

c++ - QTableView + QAbstractTableModel : Move rows via drag'n'drop

qml - 如何在 QML ScrollView 中设置滚动动画?

c++ - 如何在 QtQuick2Con​​trolsApplicationViewer 上绑定(bind) QML/C++ 类

qt - Qt Quick 的单元测试

qt - 替换 console.debug() 的日志记录后端 console.warn()

c++ - 在多个 Linux 发行版上部署 Qt 5.5.1 C++ 应用程序

c++ - 如何在 Qt 中管理文件(替换、删除...)?

javascript - QML 动态 map 对象创建

qt - 父元素的 QML 填充宽度