小编opa*_*tut的帖子

如何在QML中创建新窗口?

有没有办法创建一个全新的窗口实例,作为QmlApplication中主QML窗口的子窗口?

// ChildWindow.qml
Rectangle {
    id: childWindow
    width: 100
    height: 100
    // stuff
}

// main.qml
Rectangle {
    id: window
    width: 1000
    height: 600

    MouseArea {
        anchors.fill: parent
        onClicked: createAWindow(childWindow);
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图避免编写一个Q_OBJECT类只是为了在新的内部实现新窗口QmlApplicationViewer.

window qobject qml

14
推荐指数
2
解决办法
2万
查看次数

Git log - 分支的stat摘要

我想展示我在功能分支上进行了多少更改(插入+删除).有没有办法获得git log --stat2次提交(分支根/提示)之间的更改的输出摘要.

谢谢.

git statistics logging branch stat

12
推荐指数
2
解决办法
8571
查看次数

C++模板默认构造函数

模板有点问题:

template <typename T>
T Func(){
    std::string somestr = "";
    // somestr = ...
    if (somestr != ""){ 
        return boost::lexical_cast<T>(somestr);
    }
    else{
        T ret; // warning: "ret may be uninitialized in this function"
        return ret;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果此函数无法获得结果,我想返回一个有效的对象,但尽可能为空.如果我像上面那样做,我会收到警告"ret可能在此功能中未初始化".Try-Catch无法删除警告..

有没有办法像defaultC#中的关键字一样?

return default(T); // C#
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ templates constructor default keyword

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

从模板基类派生的类的隐式转换

我遇到了隐式转换,模板和模板类继承的问题.以下是我从项目中提取的内容,我遗漏了一些类甚至是抽象的,但它与案例没有关系.

class A {};
class B : public A {};

template <typename T> class Base {};
class Derived : public Base<B> {};

int main() {
    Derived d;
    Base<A>* base = new Derived();
}
Run Code Online (Sandbox Code Playgroud)

基本上,我有一个Base我派生的模板基类Derived : public Base<B>.然后我必须把它投射到Base的最常见的形式,即Base<A>.

我原本以为我可以从一个派生出来Base<B>Base<A>隐式B派生对象A.我是不是做错了什么或者我怎么能投那含蓄?这很重要,因为我需要在Base作为参数的方法中接受所有类型的派生类.

提前致谢.

c++ inheritance templates casting implicit

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

Qt:Q_PROPERTY,带有QtScript访问的指针和前向声明

问题

我正在使用Q_OBJECT和Q_PROPERTY创建一个项目来从脚本访问一些对象.我有两个问题:

  1. 使用前向声明脚本的类
  2. 将属性作为指针返回

说明

1.为什么要前言?

B类将前向声明传递给A,因为A由于模板而需要标题中的完整B类型.B只需要标题中的不完整类型(A*),因此前向声明有效.

2.为什么要返回指针?

我们无法返回副本,因为我们需要访问脚本中的实际对象.我们不能返回引用,因为Qt不允许槽返回引用 - 它们的类型将被忽略,它们只返回void*.

完整的代码下载的引擎收录或ZIP文件或作为ZIP压缩文件小例子,可用于测试/播放:我需要拆分的文件向前声明和MOC.我添加了一个Makefile来测试它.制作deps:g ++,moc,Qt.

重要部分

class A; // forward declaration necessary, see explanation above

class B : public QObject {
    Q_OBJECT
    Q_PROPERTY(A a READ GetA) // <-- ERROR HERE
    // ...

public slots:
    A* GetA() { 
        return mA; 
    }

private:
    A* mA;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

脚本中的错误行:

print(bObj.GetA().GetName());
Run Code Online (Sandbox Code Playgroud)

编译错误

当我注释掉上面的Q_PROPERTY时,此错误消失.

tmp/B.moc.hpp:95:51: error: invalid use of incomplete type ‘struct A’
tmp/../B.hpp:10:7: error: forward declaration of …
Run Code Online (Sandbox Code Playgroud)

qt properties forward-declaration qtscript qobject

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

带有中间证书的 Android SSL 信任链 (Apache HttpClient 4.X)

我正在尝试使用 Apache 的 HttpClient 4.X 从 Android 应用程序查询 HTTPS 网站。我得到一个javax.net.ssl.SSLPeerUnverifiedException: No peer certificate例外。我按照不同的说明导入证书:

这些都不适合我。

我认为我的问题是该站点的证书链如下:

  • 电信根 CA 2
    • 中级A
      • 中级B
        • 站点证书

所述电信根CA 2被包括在Android默认密钥库(/system/etc/security/cacerts.bks)。我在自己用于测试的手机上检查了这一点。

现在的问题是,我必须在自定义密钥库中包含所有说明告诉我提供哪些证书?只是中间件?只有网站吗?两个都?我也需要根证书吗?不Site's certificate应该由链验证 - 我不需要提供任何额外的证书,因为链的根是可信的。

如果您能向我解释发生了什么以及我如何使其发挥作用,我会很高兴。请不要发布忽略证书的解决方法,因为这是用于生产并且必须是安全的。

java ssl android certificate apache-httpclient-4.x

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

使用时区偏移量解析UNIX时间戳(例如"14232335 +0200")

我试图在python中解析一些时间戳.它们看起来像这样:

1334423456 +0200
Run Code Online (Sandbox Code Playgroud)

显然第一部分是UNIX时间戳,第二部分是时区偏移,格式为"+ HHMM"/" - HHMM".我想把它变成python.datetime对象.

我可以使用datetime.fromtimestamp的第一部分:

datetime.fromtimestamp(s.split()[0])
Run Code Online (Sandbox Code Playgroud)

但我不知道如何应用第二部分(时区偏移).任何帮助,将不胜感激.

python timezone datetime parsing unix-timestamp

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