小编Cla*_*dev的帖子

创建一个多点触控Qt 5.1应用程序

我正在尝试编写一个多点触控桌面应用程序.我有一个基于QML的应用程序,现在我尝试同时拖动多个QML元素.

我尝试使用MultiPointTouchArea,但这不起作用.所以我有2个元素.例如,2张图片,应该由两个不同的人同时拖动.

如果我定义包含MultiPointTouchAreatouchPoint每个图片链接一个的矩形,则第一个触摸事件移动第一个图片,第二个触摸事件移动第二个图片.

就像在这个示例代码中:

Rectangle {
    width: 400; height: 400
    MultiPointTouchArea {
        anchors.fill: parent
        touchPoints: [
            TouchPoint { id: point1 },
            TouchPoint { id: point2 }
        ]
    }

    Rectangle {
        width: 30; height: 30
        color: "green"
        x: point1.x
        y: point1.y
    }

    Rectangle {
        width: 30; height: 30
        color: "yellow"
        x: point2.x
        y: point2.y
    }
}
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.如果他们同时被触摸和拖动,我希望他们移动,而不会互相干扰,也没有触摸事件的顺序.这可能在qml中吗?或者我必须编写C++函数代码?

我希望你理解我的问题.

qt multi-touch qml qt5

9
推荐指数
1
解决办法
2204
查看次数

我想为QT/QML触摸屏应用程序创建一个可滚动的ListView或tableView

我打算编写一个具有可移动listView控件的触摸屏应用程序.目前我的问题是,当我尝试滚动时内容比listView本身更长/更高,内容来自视图.

在此输入图像描述

这是我目前的代码.我需要一个解决方案,只在列表视图中滚动,而不是溢出其边框.

ListModel {
        id: listModle
        ListElement {
            name: "Bill Smith"
            number: "555 3264"
        }
        ListElement {
            name: "John Brown"
            number: "555 8426"
        }
        ListElement {
            name: "Sam Wise"
            number: "555 0473"
        }
        ListElement {
            name: "Bill Smith"
            number: "555 3264"
        }
        ListElement {
            name: "John Brown"
            number: "555 8426"
        }
        ListElement {
            name: "Sam Wise"
            number: "555 0473"
        }
    }

    Rectangle {
        x: 100
        y: 100
         width: 180; height: 200

         Component {
             id: contactDelegate
             Item {
                 width: 180; height: …
Run Code Online (Sandbox Code Playgroud)

qt listview scrollbar scrollview qml

7
推荐指数
1
解决办法
7130
查看次数

将信号从QML连接到Qt 5.1

我想用qt 5.1将qml信号连接到qt插槽.我不能在这个版本的qt中使用DeclarativeView.我的qml元素是一个简单的矩形,onClicked事件启动信号.

Rectangle{
    id:test
    width:  200
    height: 50
    x: 10
    y: 10
    signal qmlSignal()
    MouseArea {
        hoverEnabled: false
        anchors.fill: parent
        onClicked: {

            console.log("geklickt")
            test.qmlSignal()


        }
}
Run Code Online (Sandbox Code Playgroud)

我有一个带有此标头的SignalslotlistView类:

class SignalslotlistView: public QObject{
Q_OBJECT
public slots:
void cppSlot(const QString &msg);
Run Code Online (Sandbox Code Playgroud)

};

和.cpp

void SignalslotlistView::cppSlot(const QString &msg) {

qDebug() << "Called the C++ slot with message:" << msg;}
Run Code Online (Sandbox Code Playgroud)

在MainWindow类中,我尝试设置连接:

view->setSource(QUrl::fromLocalFile("main.qml"));
QObject *object = (QObject *)view->rootObject();
QObject *rect = object->findChild<QObject*>("test");

SignalslotlistView myClass;
    QObject::connect(rect, SIGNAL(qmlSignal()),
                     &myClass, SLOT(cppSlot()));
Run Code Online (Sandbox Code Playgroud)

视图来自QQuickView类型.

但什么都没发生.谢谢.

c++ signals qml slot qt5.1

5
推荐指数
1
解决办法
2183
查看次数

标签 统计

qml ×3

qt ×2

c++ ×1

listview ×1

multi-touch ×1

qt5 ×1

qt5.1 ×1

scrollbar ×1

scrollview ×1

signals ×1

slot ×1