小编Adr*_*vat的帖子

如何在QTapAndHoldGesture之后忽略QTapGesture

我希望得到QTapAndHoldGestureQTapGesture在我的小部件中做出不同的事情作为对这些手势的反应.所以我重写QWidget::event方法并添加这样的代码:

 bool event(QEvent *event) override {
    if (event->type() == QEvent::Gesture) {
      auto g_event = static_cast<QGestureEvent *>(event);
      qDebug() << "GestureEvent BEGIN: gestures " << g_event->gestures().size() << ", active: " << g_event->activeGestures();
      if (auto g = qobject_cast<QTapGesture *>(g_event->gesture(Qt::TapGesture))) {
        g_event->accept(g);
        return true;
      }
      if (auto g = qobject_cast<QTapAndHoldGesture *>(g_event->gesture(Qt::TapAndHoldGesture))) {
        if (g->state() == Qt::GestureFinished) {
                qDebug("FINISHED!!!");
                g->setGestureCancelPolicy(QGesture::CancelAllInContext);
        }
        g_event->accept(g);
        return true;
      }
Run Code Online (Sandbox Code Playgroud)

问题是我QTapGesture最终没有被通缉QTapAndHoldGesture.

它看起来像这样:

GestureEvent BEGIN: gestures  1 , active:  (QTapGesture(state=GestureStarted,hotSpot=773.396,492.884,position=773.396,492.884))
GestureEvent …
Run Code Online (Sandbox Code Playgroud)

c++ qt touch gesture qt5

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

如何在 cmake 中使用 QML_ELEMENT

文档显示我可以使用 QML_ELEMENT 宏通过在 qmake 的 .pro 文件中添加一些变量来从 C++ 创建 QML 类型。但我正在使用 cmake

c++ qt cmake qml qt5

9
推荐指数
2
解决办法
1418
查看次数

如何让 pytest 忽略名为 TestSomething 的类?

我正在开发一种测试框架,它恰好有名为“TestSomething当然”的类。我意识到我的测试失败了,因为 pytest 将这些类视为“我需要实例化和运行的东西!”,一旦导入。而这绝对行不通。

import pytest
from package import TestSomethingClass
Run Code Online (Sandbox Code Playgroud)

是否可以直接从 pytest 测试文件导入此类?或者我应该通过固定装置间接使用它们?

同样的问题也适用于异常,因为我需要做类似的事情

with pytest.raises(TestsSomethingError):
Run Code Online (Sandbox Code Playgroud)

python pytest

8
推荐指数
1
解决办法
1553
查看次数

QML鼠标在MouseArea中的绝对位置

如何从鼠标区域获取鼠标的绝对位置?我需要它来显示弹出窗口的正确位置

Item {
    Menu {
        id: menu
        MenuItem {
            onTriggered: {
               // Need Mouse absolute position
            }
        }
    }
    MouseArea {
        id: mouseArea
        anchors.fill: parent
        onClicked: {
            menu.popup()
        }
    }
Run Code Online (Sandbox Code Playgroud)

javascript c++ qt qml

6
推荐指数
2
解决办法
9933
查看次数

Python 类析构函数是否保证在程序结束之前执行?

我们可以强制执行析构函数del,通常只是让垃圾收集器完成它的工作,但是如果我们在Python中定义一个类析构函数,是否可以保证对每个实例化的对象执行它?

python

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

Qt QML在显示StackView页面时聚焦项目(文本字段)

我想在加载qml文件时启用TextField焦点。但是,它不起作用。加载TestUi.qml文件后,我放了一些按钮,并使用了onClick方法(我做了receiveView.focus = true),效果很好。问题在于,首次加载视图时未启用默认焦点。

TestUi.qml

import QtQuick 2.0
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.0


Page {

    function init() {
        recipientView.focus = true;
    }

    TextField {
       id: recipientView
        Layout.fillWidth: true
        font.pixelSize: 18
        inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhEmailCharactersOnly
        focus: true
        placeholderText: "Email"

    }
}
Run Code Online (Sandbox Code Playgroud)

main.qml

onComposeBtnClicked: {
    rootStackView.push(test)
    test.init()
}

TestUi {
    id: test
    visible: false
}
Run Code Online (Sandbox Code Playgroud)

qt focus qml stackview

2
推荐指数
1
解决办法
1399
查看次数

QObject内存管理和智能指针

使用QObject内存管理和智能指针之间的主要区别是什么?什么时候使用这种机制更好?

c++ qt

2
推荐指数
1
解决办法
635
查看次数

标签 统计

qt ×5

c++ ×4

qml ×3

python ×2

qt5 ×2

cmake ×1

focus ×1

gesture ×1

javascript ×1

pytest ×1

stackview ×1

touch ×1