小编V. *_* L.的帖子

无效的信号参数类型:MouseEvent

如果我尝试MouseEvent在 QML 定义的信号中使用 a作为参数,我会在加载时收到以下错误:

无效的信号参数类型:MouseEvent

Qt 文档中存在与此相关的冲突信息,在QML 信号语法文档中,它指出:

允许的参数类型与定义属性属性 [...] 下列出的参数类型相同,任何 QML 对象类型都可以用作属性类型。

QML/C++ 交互文档中,它指出:

当 QML 对象类型用作信号参数时,参数应使用 var 作为类型

将参数设置为 usevar确实有效,但根据 QML 文档,这似乎没有必要。在很久以前有一个关于这个的错误,但它显然在 v5.0.0 中得到了解决。所以我做错了什么,还是这是一个回归?

编辑

一个简单的演示:

import QtQuick 2.3

Item {
    signal sig( MouseEvent mouse )
}
Run Code Online (Sandbox Code Playgroud)

qt qml qtquick2

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

如果正在运行的方法的对象被删除,它会发生什么?

我是 StackOverflow 的新手,我的第一个问题是当我删除它的对象时,正在运行的方法会发生什么?此外,在删除旧对象后,当我在方法中创建新对象时会发生什么?

下面有一个小代码片段来澄清我的问题。(在 C++11 中编程)

// Declaration and Definition of the class
class MyClass{
private:
    static int counterFromClass = 0;
    int counterFromObject;
public:
    MyClass() {
        counterFromObject = 0;
    }
    void ~MyClass() {}
    void doSomething();
};

// Somewhere in the code a new object of the class is generated like this:
MyClass object = new MyClass();

// Then the method is called:
object->doSomething();

// Definition of the method
void MyClass::doSomething() {
    this->counterFromObject++;
    delete object;
    MyClass object = new MyClass();
    this->counterFromClass++; …
Run Code Online (Sandbox Code Playgroud)

c++ oop c++11

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

在Makefile中打印:@echo vs $(info)

makefile中这两个命令有什么区别:

@echo "Hello World"
$(info Hello World)
Run Code Online (Sandbox Code Playgroud)

看起来,echoinfo打印相同的输出,那么区别在哪里?什么时候使用哪一个?

makefile gnu-make

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

#include 在注释块之前或之后保护?

我在某处读到(抱歉,再也找不到链接了)在标题的第一行应该始终是 #include 保护,因为编译器可以在不打开头文件的情况下看到它。因此,如果头文件已经包含在内,它不会打开文件只是为了再次关闭它,这会加快构建过程。
但是我总是在每个文件的开头都有一个注释块。所以我的问题是,#include 守卫应该写在注释块之前还是之后?

这种风格更好吗:

///////////////////////
// Name:        code.h
// Author:      Me
// Date:        dd.mm.yyyy
// Description: This code executes a specific task
///////////////////////

#ifndef CODE_H_
#define CODE_H_

...

#endif
Run Code Online (Sandbox Code Playgroud)

或者这种风格更好:

#ifndef CODE_H_
#define CODE_H_

///////////////////////
// Name:        code.h
// Author:      Me
// Date:        dd.mm.yyyy
// Description: This code executes a specific task
///////////////////////

...

#endif
Run Code Online (Sandbox Code Playgroud)

或者根本就没有关系?

c++ performance compilation include-guards header-files

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

获取当前的QNetworkInterface并将其连接到Internet

我想让当前的网络接口处于活动状态并连接到互联网.

实际上,我可以检查网络是否正常运行,以及是否不是环回网络.

  foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
    {
        if (interface.flags().testFlag(QNetworkInterface::IsUp) && !interface.flags().testFlag(QNetworkInterface::IsLoopBack))
            foreach (QNetworkAddressEntry entry, interface.addressEntries())
            {
            if ( interface.hardwareAddress() != "00:00:00:00:00:00" && entry.ip().toString().contains("."))
                items << interface.name() + " "+ entry.ip().toString() +" " + interface.hardwareAddress();
        }
Run Code Online (Sandbox Code Playgroud)

结果:

"en1 3.3.3.52 D4:9A:20:61:1F:72" 
"vmnet1 192.168.169.1 00:50:56:C0:00:01" 
"vmnet8 192.168.210.1 00:50:56:C0:00:08"
Run Code Online (Sandbox Code Playgroud)

实际上它可以工作,但我发现了VM接口.我只想选择WLAN接口和以太网接口.

c++ qt network-interface

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

如何将JsonCPP值作为字符串?

我正在使用JsonCpp解析json数据.我真的不需要理解数据,我只需要打印出一些属性及其值.它不知何故很难做到.首先,我需要知道值是什么类型,然后获取值,然后再将其转换为字符串!有一个风格的作家,但我不想使用它,因为它最后添加了一些CRLF.

我这样做

CJsonHelper::getUInt(Json::Value &root, std::string key){
    return root.get(key, 0-1).isInt() ? root.get(key, 0-1).asUInt() : 0-1;
}
Run Code Online (Sandbox Code Playgroud)

我可以只编写一个函数来获取所有属性,而这个函数并不真正关心类型等吗?

c++ json jsoncpp

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

我也可以在 QML 文件中使用 C++ 中的常量吗?

通常,我可以在头文件中声明一个常量并将其定义为源文件。之后,我可以在包含标头的每个文件中使用常量。

例子:

// constants.h 
extern const std::string HELLO_WORLD;

// constants.cpp
const std::string HELLO_WORLD = "Hello World";
Run Code Online (Sandbox Code Playgroud)

现在我想在 QML 文件中使用这些常量。

是否有一个简单的解决方案可以实现此目的,例如:
#inlude constants.h

import constants.h

或者是通过创建一个以这些常量作为成员的类,然后使该类在 QML 中可访问来实现此目的的唯一可能方法?
(类似于 Qt 文档中描述的内容:Defining QML Types from C++

c++ qt qml

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