小编Krz*_*ski的帖子

QML console.log()和console.debug()不写入控制台

我在Fedora 23上使用Qt 5.6,我注意到console.log()并且console.debug()没有向控制台写任何东西.我的示例代码:

import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent

        Component.onCompleted: {
            console.warn("warn completed")
            console.log("log completed")
            console.error("error completed")
            console.debug("debug completed")
            console.exception("exception completed")
            console.info("info completed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

打印到控制台:

QML debugging is enabled. Only use this in a safe environment.
qml: warn completed
qml: error completed
qml: exception completed
onCompleted (qrc:/main.qml:16)
qml: info completed
Run Code Online (Sandbox Code Playgroud)

所以warn,error,exception,和info做工精细.我究竟做错了什么?

编辑#1:项目是新创建的,我的所有来源:

main.cpp中

#include <QGuiApplication> …
Run Code Online (Sandbox Code Playgroud)

qt fedora qml

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

当MouseArea被另一个MouseArea覆盖时,如何在qml中更改光标形状

有两个负责两个不同职责的MouseArea,一个(绿色)部分位于另一个(红色)上方。每当悬停红色 MA(即使它在绿色 MA下)时,我都想更改光标的形状,并且我希望绿色 MA对按下做出反应,而没有其他事情。

两个MA可能位于不同的文件中,所以我不想在它们之间建立明确的依赖关系,例如,每当红色更改containsMouse时,就将绿色设置为正确的cursorShape 。有没有办法防止绿色的 MouseArea处理光标形状?

import QtQuick 2.4
import QtQuick.Window 2.2

Window {
    visible: true
    width: 200
    height: 200

    Rectangle { anchors.fill: parent; color: "yellow"; }

    MouseArea {
        width: 150
        height: 150
        hoverEnabled: true
        cursorShape: Qt.OpenHandCursor
        Rectangle { anchors.fill: parent; color: "red"; }
        onPositionChanged: console.log("position", mouse.x, mouse.y)
        onContainsMouseChanged: console.log("containsMouse", containsMouse)
    }
    MouseArea {
        x: 50
        y: 50
        width: 150
        height: 150
        hoverEnabled: false
        Rectangle { anchors.fill: …
Run Code Online (Sandbox Code Playgroud)

qt cursor qml qt5 qtquick2

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

如何使用Three.js中的多个'.mtl'文件加载'.obj'

我想加载cube.obj引用多个cube_*.mtl文件的文件,后者又使用纹理图像*.png(所有资源).加载多个mtl而不是一个mtl的原因是能够动态加载具有相同几何但不同材质的对象.

我找不到这样的例子所以我试图通过加载所有mtl,创建和加载obj 来混合MultiMaterial中的示例(不再受threejs支持)文档和webgl_loader_obj_mtlMultiMaterial:

var resources = 'cube/';
var materialsToLoad = [
    'cube_red.mtl',
    'cube_green.mtl',
    'cube_blue.mtl'
];

var loadedMaterials = [];

var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath(resources);
for (var i = 0; i < materialsToLoad.length; i++) {
    mtlLoader.load(materialsToLoad[i], function(materials) {
        materials.preload();
        loadedMaterials.push(materials);
    }); 
}

var multi = new THREE.MultiMaterial(loadedMaterials);
var objLoader = new THREE.OBJLoader();
objLoader.setPath(resources);
objLoader.setMaterials(multi); // #1
objLoader.load('cube.obj', function (object) {
    scene.add(object);
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用,抛出异常:

Uncaught TypeError: …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

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

标签 统计

qml ×2

qt ×2

cursor ×1

fedora ×1

javascript ×1

qt5 ×1

qtquick2 ×1

three.js ×1