小编Vic*_*voy的帖子

QML着色器效果在项目后面模糊

是否可以模糊其他项目背后的项目?

示例:模糊图像的一部分(如qml中 - parent.centerIn:image)

模糊的例子

我想要的东西:

Image { id: img
    anchors.fill: parent
    source: "bug.png"

    Item { id: info
        anchors.centerIn: parent
        height: 200
        width: 200

        Text {
            text: "HAMMER TIME"
            color: "white"
        }

        /* BLUR CODE HERE TO BLUR BACKGROUND OF THIS ITEM */
        /* which is a part of "bug.png" image with 200x200 size */
        /* and offset equals to "info.x" and "info.y" */
    }
}
Run Code Online (Sandbox Code Playgroud)

这个问题影响到任何问题,shader effect因为官方文档没有问题的答案,我的所有尝试都没有成功 - 只能模糊整个项目而不是它的一部分.

javascript qt effects qml

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

兼容c ++ 11的编译器总是忽略内联提示吗?

读取旧的答案我什么时候应该写关键字"内联"的函数/方法?说的是:

据说内联提示您认为该函数应该内联到编译器.这可能是在1998年,但十年后编译器不需要这样的提示.更不用说人类在优化代码时通常是错误的,因此大多数编译器都会忽略"提示".

这个答案是在2009年发布的,所以我想最终想出来:

  1. 现代的c ++ 11兼容编译器是否总是忽略inline用户指定的提示并且只是自动执行此操作?
  2. 不要inline提示只停留于提供向后兼容性?
  3. 如果不是1.这样这个答案是不正确的?

c++ inline c++11

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

关于Debian的Qt5示例包

如何在Debian Jessie上单独获取Qt5示例包?我有QtCreator与Qt5,可以开发Qt应用程序,但我没有这些例子.当我搜索Qt时,Synaptic Package Manager会出现太多点击.我认为我想要的是关闭的东西qtbase5-examples,但我不能100%确定这是否是我必须下载的内容.

c++ debian qt package

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

std :: map通过transform替换现有元素

我有一个代码:

std::vector<int> vector = {1, 3, 5, 7, 9};
using my_type = std::pair<int, int>;
std::map<int, boost::optional<my_type>> map;
for (const auto &i : vector) {
    map[i] = boost::none;
}
const my_type val = {1, 5};
std::transform(vector.cbegin(),
               vector.cend(),
               std::inserter(map, map.end()),
               [&val](const int &i) {
                   return std::make_pair(i, boost::optional<my_type>(val));
});
Run Code Online (Sandbox Code Playgroud)

一切正常但std::transform不会通过用现有密钥替换值来更改地图,所以我有:

{ 
    {1, boost::none},
    {3, boost::none},
    {5, boost::none},
    {7, boost::none},
    {9, boost::none},
}
Run Code Online (Sandbox Code Playgroud)

是否有可能使其工作如下简单的基于范围?

for (const auto &i : vector) {
    map[i] = boost::optional<my_type>(val));
}
Run Code Online (Sandbox Code Playgroud)

PS我知道它是如何std::inserter工作的std::map::insert,只是好奇我怎样才能改变变换以改变值.

c++ c++11

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

python在一行中有多个'for'语句

我想对我的代码进行一些重构,在perl中我记得有一些 (a, b, c) = (x, y, z)类似于'多次分配'的声明.我也听说过这个东西存在于python中,但我不需要完全"多次分配".

我有3个相同大小的列表,我需要知道 - 我可以通过以下方式从中获取项目:

for a, b, c in a_list, b_list, c_list:
   pass
Run Code Online (Sandbox Code Playgroud)

对于我的测试,它只获得a_list的前3个元素,(a = a_list[0], b = a_list[1], c = a_list[2])但是我需要从a_list中获取一个元素,从(a = a_list[0])b_list中获取一个元素,并在每次迭代时获取(b = b_list[0])相同的c_list下一个项目.

python for-loop

3
推荐指数
2
解决办法
346
查看次数

长期运行C++应用程序中的内存泄漏

我正在运行一个长期运行的C++应用程序,它分配不同的对象并将其存储在几个deque和map中,并且一次从这些数据结构中释放这些对象.我正在经历少量的内存增加(通常为1 mb到2我已经运行了内存泄漏检测器(valgrind),但我找不到任何可疑的内存泄漏.我想知道问题是否与deque和存储对象的地图有关.一旦从数据结构中弹出对象,deque和map的内存是否会将内存释放到OS?任何人都可以指出解决方案或内存增加的一般可能原因吗?

c++ memory dictionary memory-leaks deque

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

是否可以创建一个宏来实现构建器模式方法?

我为我的结构实现了一个构建器模式

pub struct Struct {
    pub grand_finals_modifier: bool,
}
impl Struct { 
    pub fn new() -> Struct {
        Struct {
            grand_finals_modifier: false,
        }
    }

    pub fn grand_finals_modifier<'a>(&'a mut self, name: bool) -> &'a mut Struct {
        self.grand_finals_modifier = grand_finals_modifier;
        self
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Rust 中是否有可能为这样的方法创建一个宏来概括并避免大量重复代码?我们可以使用以下内容:

impl Struct {
    builder_field!(hello, bool);
}     
Run Code Online (Sandbox Code Playgroud)

rust

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

如何使用 Serde 从 JSON 命名值(而不是数组)序列化(反)序列化元组结构?

我有一个 JSON 对象:

{ "min": 2, "max": 15 }
Run Code Online (Sandbox Code Playgroud)

我想将其解析为这个元组结构:

#[derive(Serialize, Deserialize, Debug)]
struct TeamSize(pub i64, pub i64);
#[derive(Serialize, Deserialize, Debug)]
struct Match {
    size: TeamSize,
}
Run Code Online (Sandbox Code Playgroud)

当前的 Serde 序列化机制似乎没有提供从命名值而不是数组对元组结构进行(反)序列化的功能。

生成的(反)序列化机制需要以下内容:

{"size": [2, 15]}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 Serde 属性,但找不到一个可以满足我要求的属性:

#[derive(Serialize, Deserialize, Debug)]
pub struct TeamSize(
    #[serde(rename = "min")]
    pub i64,
    #[serde(rename = "max")]
    pub i64
);
Run Code Online (Sandbox Code Playgroud)

怎么解析呢?我应该自己实施一切吗?

在 Serde 存储库上提出了一个问题

serialization json rust serde

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

如何使用 Serde 从原始结构的 JSON 中反序列化结构的子字段?

我想让Test::team_size属性从Test对象本身的数据中反序列化:

#[derive(Debug, Serialize, Deserialize)]
struct TeamSize {
    pub min: i64,
    pub max: i64,
}

#[derive(Debug, Serialize, Deserialize)]
struct Test {
    pub i: i64,
    pub team_size: TeamSize,
}

fn main() {
    let t: Test = serde_json::from_str(r#"{"i": -2, "min": 2, "max": 5}"#).unwrap();
    assert_eq!(t.i, -2);
    assert_eq!(t.team_size.min, 2);
    assert_eq!(t.team_size.max, 5);
}
Run Code Online (Sandbox Code Playgroud)

这段代码无法编译,我不知道如何让 Serde 做我想做的事。team_size在这个例子中,有没有办法从作为子字段的原始结构的 JSON反序列化?

似乎我想要类似的东西 #[serde(untagged)]但是对于一个结构和一个字段而不是整个结构。

json rust serde

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

逻辑运算符执行顺序

我有关于运算符重载的问题,并附带一个有趣的代码:

#include <iostream>

class A {
public:
    operator bool() {
        return true;
    }

    bool operator!() {
        return false;
    }
};

int main() {
    A a;

    if (!a) {
        std::cout << "HELLO";
    } else {
        std::cout << "WORLD";
    }
    std::cout << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

什么将首先被称为什么?为什么?这是在cppreference的任何地方描述的吗?

PS对于那些认为我自己无法执行此代码的downvoters和其他人.我可以.我做到了.我已多次改变它以查看它的行为.所以呢?这不是解释.我已经要求提供一个参考,清楚地说明了这个代码服从的规则.它在我的机器上如何工作的信息并没有回答这个问题 - 如果它甚至不能在不同的环境(操作系统,可能是处理器等)中移植,该怎么办?

c++

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