小编Cav*_*ler的帖子

QML-右键单击MouseArea中未检测到

我正在使用图像编辑器,专门使用MouseArea设置当前左或右按钮的相关颜色(在Button类型中).我遇到的问题是我似乎无法过滤特定的按钮.这是给我麻烦的片段:

    Button {
        x: 60
        width: 80
        height: 40
        text: "Blue"

        anchors.verticalCenter: parent.verticalCenter

        onButtonClick: {
            if(mouseArea.pressedButtons & Qt.RightButton) {
                console.log("Right button used");
                GlobalState.setRightColorValues(0.0, 0.0, 1.0, 1.0);
            } else {
                console.log("Left button used");
                GlobalState.setLeftColorValues(0.0, 0.0, 1.0, 1.0);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

(如果需要,我可以提供整个Button.qml,但它主要来自这里).

我试图按照这里的例子,但用于过滤鼠标右键的方法似乎不起作用(无论如何).假设左键单击的语句为"默认".我也尝试将两者分成不同的if语句,但这样做会导致没有明确过滤按钮.

需要更改什么才能过滤特定的鼠标按钮?或者我是否必须实现Paint/Paint.NET中使用的那种"开关原色"按钮?

编辑1:我意识到Button.qml中缺少相关的片段 -

 MouseArea{
    id: buttonMouseArea;

    acceptedButtons: Qt.AllButtons;
    hoverEnabled: true

    onEntered: parent.color = onHoverColor
    onExited:  parent.color = buttonColor

    anchors.fill: parent;

    onClicked: buttonClick();
}
Run Code Online (Sandbox Code Playgroud)

这嵌套在一个内部Rectangle,它也包含一个Text字段.

qt qml qtquick2

4
推荐指数
2
解决办法
7731
查看次数

SDL2 和 C++11,未输入 main

问题的要点是我有一个main函数来初始化 SDL,设置 OpenGL 属性(用于上下文创建)获取上下文(一个表示 OpenGL 渲染上下文(带有窗口和上下文)的类),报告OpenGL 版本的一些信息和其他基本信息,并进入在用户关闭窗口或按 ESC 时退出的常规循环。

除了我无法测试任何一个,因为main从未输入过,它似乎SDL_main.h包含一个#define替换mainSDL_main,并且实际main是从静态库中调用的。出于某种原因,它以 0 的返回值退出,而从未进入“实际”主程序。奇怪的是,除了添加 RenderingContext 类之外,从最低限度的工作(只是将一些 OpenGL 数据放入文件中)到现在,我没有对项目设置进行任何更改。从项目中删除该类并不能解决问题,我只是链接了最少量的库来实际完成链接。

是否有解决该问题的方法,或者我不知道 SDL2 可能受我的项目设置影响的某些问题?

代码可以在这里找到,大部分在 src 目录下,main.cpp 在顶层。

c++11 sdl-2

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

标签 统计

c++11 ×1

qml ×1

qt ×1

qtquick2 ×1

sdl-2 ×1