小编너를 *_*속였다的帖子

如何在 cmake 中使用 QML_ELEMENT

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

c++ qt cmake qml qt5

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

如何抑制来自宏的 Clippy 警告?

我有一个带有 return 语句的宏,如下所示:

macro_rules! return_fail {
    ( $res:expr ) => {
        match $res {
            Ok(val) => val,
            Err(e) => {
                eprintln!(
                    "An error: on {}:{} {}; aborting current function.",
                    file!(),
                    line!(),
                    e
                );
                return;
            }
        }
    };
}

fn bad(flag: bool) -> Result<(), String> {
    if flag {
        Ok(())
    } else {
        Err("u r idiot".to_string())
    }
}

fn main() {
    return_fail!(bad(true));
    return_fail!(bad(false));
}
Run Code Online (Sandbox Code Playgroud)

铁锈游乐场

当我在函数中间使用它时,这个宏工作正常,但是当我在函数末尾使用它时,我收到来自 Clippy 的警告:

warning: unneeded `return` statement
  --> src/main.rs:12:17
   |
12 |                 return;
   |                 ^^^^^^^ help: …
Run Code Online (Sandbox Code Playgroud)

compiler-warnings rust clippy

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

如何在不消耗它的情况下获取盒子的原始指针?

我需要将指向结构的原始指针传递给 C++,然后仍然想使用该框。

我找到了into_raw函数,但它吃掉了这个盒子,我不能再在 Rust 中使用那个盒子了。有没有办法得到一个*const T?我可以const_cast在 C++ 方面侥幸逃脱。

这就是我想要做的:

let handle_ptr = Box::<Handle>::into_raw(handle);            
     
     
std::thread::spawn(move || {            
    let rt = tokio::runtime::Builder::new_current_thread()            
        .build()            
        .unwrap();             
     
    rt.block_on( handle.run() );            
});            
     
return handle_ptr
Run Code Online (Sandbox Code Playgroud)

我知道这是不安全的,但我不知道任何其他方法可以允许在其他线程上运行的 C++ 代码调用 Rust 对象的线程安全方法。

pointers rust

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

如何在 C++ 中将 Big/Little-Endian 字节转换为整数,反之亦然

我将使用 QTcpSocket 从服务器接收长度分隔的帧,格式如下:-

+----------+--------------------------------+
| len: u32 |          frame payload         |
+----------+--------------------------------+
Run Code Online (Sandbox Code Playgroud)

其中 u32 是以 Big-Endian 格式编码的 32 位无符号整数。根据配置,它也可以是小端字节序,但我会事先在客户端了解字节序。

如何将该char*数组的前 4 个字节转换QByteArray为 32 位 unsigned int ?

阅读框架后,我需要以相同的格式发送消息。因此,如果我有长度为 20 字节的消息,如何将 20 作为 32 位无符号 int 以大/小端格式写入 QByteArray 或 char* ?

c++ qt endianness

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

如何在 QML 中显示 QSqlQueryModel?

我想在 qml TableView 中显示 QSqlQueryModel 但我不想为每个新查询创建单独的 QML 文件,因为我无法创建无限的 qml 文件,如这里给出的。另外,问题对我的动态列数不起作用(可能是版本差异,因为我使用的是 5.11)。我只想要这样的东西:-

QTableView *view = new QTableView;
view->setModel(model);
view->show();
Run Code Online (Sandbox Code Playgroud)

在 QML 中。

我是 qml 的新手。到目前为止,我可以按照第一个链接中的指导显示 QSqlQueryModel,但我的用户可以输入任何 SQL 查询。

c++ qt qml qt5 qsqlquerymodel

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

如何更新HashMap中的键?

我找不到任何允许我更新HashMap. 有get_key_value,但它返回一个不可变的引用而不是一个可变的引用。

key hashmap rust

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

标签 统计

c++ ×3

qt ×3

rust ×3

qml ×2

qt5 ×2

clippy ×1

cmake ×1

compiler-warnings ×1

endianness ×1

hashmap ×1

key ×1

pointers ×1

qsqlquerymodel ×1