小编Alb*_*ert的帖子

捕获QtWebView中的链接点击并在默认浏览器中打开

我在QtWebView中打开一个页面(在PyQt中,如果这很重要),我想打开系统默认浏览器中的所有链接.即单击链接不应更改QtWebView中的站点,但应使用默认浏览器打开它.我想让用户无法在QtWebView中更改站点.

我怎样才能做到这一点?

谢谢,艾伯特

qt qt4 pyqt qtwebkit

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

C++多人网络游戏中的OpenID身份验证

我计划在多人网络C++游戏中使用OpenID客户端.主机可以选择只允许通过OpenID进行身份验证的人员登录.此外,我希望只允许某些人登录.

我们的代码中已经有了一些简单的HTML查看器(我们计划迁移到WebKit),因此显示HTML(用于OpenID端点登录)并不是真正的问题.

我们还有HTTP请求的代码(我们已经在这里迁移到libcurl).

我还没有找到任何C++代码来完成剩下的工作(实际的OpenID端点握手).这有什么C++代码吗?

如果没有,那么从哪里开始呢?我对OpenID内部结构并没有多少想法.我自己编码是否很复杂?

这样可能吗?我想我已经看到我必须将一些身份验证站点URL左右放到OpenID端点,如果登录成功,它将返回到该端点.在这种情况下,没有您通过OpenID登录的站点,它是一个游戏服务器.

如果用这种方式确实是一个问题,我们也有自己的网络服务器(一个用于我们的论坛,我们有SourceForge一个),所以我们也可以在那里做所有的事情.然而,这有一个巨大的缺点,游戏依赖于一些网站的OpenID登录,这是非常糟糕的 - OpenID的一个很好的优势已经消失.

c++ openid multiplayer

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

将带有混合空格/制表符的txt文件转换为制表符(如果可能)

我有一些源代码文件,它有混合标签/空格,我想将它转换为一个文件,它通过标签自动替换给定标签空间长度的所有缩进空格(例如tab = 2个空格).

任何简单的解决方案(使用常见的Unix工具,MacOSX,bash或zsh)?一些sed脚本或Python命令左右?

谢谢,艾伯特

shell whitespace tabs

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

Java迭代器和for-each-loop.任何方式访问底层迭代器?

我非常喜欢for(T e : iterable)Java中的for-each-loop构造(),Iterable<T>因为它在很多情况下非常容易阅读和编写代码.

我想知道是否有任何方法可以从这样的循环访问底层迭代器.如果我想remove()从迭代器中使用它,这可以是必需的.

java foreach iterator

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

OpenCV:Python界面的内存泄漏,但C版本没有

我在这里问,因为到目前为止我还没有得到OpenCV开发人员的任何帮助.我把问题简化为一个非常简单的测试用例,所以可能有CPython背景的人都可以在这里提供帮助.

这个C代码不泄漏:

int main() {
    while(true) {
        int hist_size[] = {40};
        float range[] = {0.0f,255.0f};
        float* ranges[] = {range};
        CvHistogram* hist = cvCreateHist(1, hist_size, CV_HIST_ARRAY, ranges, 1);
        cvReleaseHist(&hist);
    }
}
Run Code Online (Sandbox Code Playgroud)

这个Python代码确实泄漏:

while True: cv.CreateHist([40], cv.CV_HIST_ARRAY, [[0,255]], 1)
Run Code Online (Sandbox Code Playgroud)

我搜索了CPython代码(OpenCVs当前的SVN中继代码),发现了这个:

struct cvhistogram_t {
  PyObject_HEAD
  CvHistogram h;
  PyObject *bins;
};
Run Code Online (Sandbox Code Playgroud)

...

/* cvhistogram */

static void cvhistogram_dealloc(PyObject *self)
{
  cvhistogram_t *cvh = (cvhistogram_t*)self;
  Py_DECREF(cvh->bins);
  PyObject_Del(self);
}

static PyTypeObject cvhistogram_Type = {
  PyObject_HEAD_INIT(&PyType_Type)
  0,                                      /*size*/
  MODULESTR".cvhistogram",                /*name*/
  sizeof(cvhistogram_t),                  /*basicsize*/
};

static PyObject *cvhistogram_getbins(cvhistogram_t *cvh) …
Run Code Online (Sandbox Code Playgroud)

python debugging opencv memory-leaks cpython

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

Git:服务器上多个用户的repo

我在服务器上创建了一个Git repo,并希望它被几个人使用,即属于同一个Unix组的用户.它还有一个工作副本,因为我们可能有一个共同的工作副本.

因此,我将该Git repo目录的拥有组设置为该Unix组.

问题是,每当有人推送到该存储库时,新文件/目录都将所有者设置为该用户及其组的用户名,而不是我们的公共组.此外,所有这些新文件/目录成为rwxr-xr-x.

我尝试过,git config core.sharedRepository group但这不起作用.它现在使文件/目录成为rwxrwsr-x但仍然是错误的组集.

unix git file-permissions shared

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

Python:如何增加ctypes POINTER实例

假设p = ctypes.cast("foo", ctypes.POINTER(ctypes.c_char)).

因此,我们有p.contents.value == "f".

如何直接访问和操作(例如递增)指针?比如(p + 1).contents.value == "o".

python ctypes pointers

7
推荐指数
2
解决办法
4916
查看次数

给定一个字节缓冲区,dtype,shape和strides,如何创建Numpy ndarray

我有缓冲,dtype,形状和步幅.我想创建一个Numpy ndarray,它重用缓冲区的内存.

numpy.frombuffer一个从缓冲区创建一个数组并重用内存.但是,我不确定我能否轻松安全地重塑它并设定步幅.

有一个numpy.ndarray构造函数可以引用缓冲区,但我不确定它是否会重用内存或它是否会复制它(文档中不清楚).

那么,numpy.ndarray构造函数会做我想要的吗?或者我可以使用什么呢?


好的,所以我现在想弄清楚自己numpy.ndarray构造函数到底在做什么.代码在这里.它用于PyArray_BufferConverter转换缓冲区参数.然后,它会调用PyArray_NewFromDescr_int由此可以看出这里.如果数据在那里传递,它将会fa->flags &= ~NPY_ARRAY_OWNDATA;.

python arrays buffer numpy multidimensional-array

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

样品无需更换

如何在 TensorFlow 中进行无替换采样?就像numpy.random.choice(n, size=k, replace=False)一些非常大的整数n(例如 100k-100M)和更小的整数k(例如 100-10k)。另外,我希望它是有效的,并在GPU上,因此像其他的解决方案,tf.py_func是不是真的我的选择。任何会使用的东西tf.range(n)也不是一种选择,因为n可能非常大。

tensorflow

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

给定其vars dict的模块实例

假设我有一个模块的字典(通过vars(mod),或mod.__dict__,或globals()),例如:

import mod

d = vars(mod)
Run Code Online (Sandbox Code Playgroud)

有了dict d,我该如何找回模块mod?即我想编写一个函数get_mod_from_dict(d),如果字典属于某个模块,则返回该模块,或者None

>>> get_mod_from_dict(d)
<module 'mod'>
Run Code Online (Sandbox Code Playgroud)

如果get_mod_from_dict返回模块,则必须具有:

mod = get_mod_from_dict(d)
assert mod is None or mod.__dict__ is d
Run Code Online (Sandbox Code Playgroud)

我实际上可以这样实现:

def get_mod_from_dict(d):
    mods = {id(mod.__dict__): mod for (modname, mod) in sys.modules.items()
                                  if mod and modname != "__main__"}
    return mods.get(id(d), None)
Run Code Online (Sandbox Code Playgroud)

但是,对我来说,遍历这似乎效率很低sys.modules

有没有更好的办法?


我为什么需要这个?

  • 在某些情况下,您只能访问字典。例如在堆栈框架中。然后,根据您想做什么,也许只是出于检查/调试的目的,找回模块很有帮助。

  • 我写了一些扩展程序Pickler,可以使方法,函数等腌制。其中一些引用了模块或模块字典。在腌制过程中,无论我有一个属于模块的字典,我都不想腌制该字典,而要引用该模块。

python

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