小编And*_*w T的帖子

选项,设置,属性,配置,首选项 - 何时以及为何?

有几个词有类似的(在某种意义上)含义:

选项,设置,属性,配置,首选项

英语不是我的母语.你能用简单的英语解释一下这个区别吗?我认为以下模板可能有用:

  • 在GUI中使用XXX以便让人们更改应用程序的行为(可能是首选项或设置?)
  • 在GUI中使用YYY以便让人们更改对象的部分(可能是属性或选项?)
  • 在你的代码中使用ZZZ ......

什么是最佳做法?

settings configuration properties options

120
推荐指数
8
解决办法
3万
查看次数

如何处理"签名/未签名的不匹配"警告(C4018)?

我使用大量用C++编写的计算代码,考虑到高性能和低内存开销.它大多使用STL容器vector,并且几乎在每个函数中遍历那些容器.

迭代代码如下所示:

for (int i = 0; i < things.size(); ++i)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但它会产生签名/未签名的不匹配警告(Visual Studio中的C4018).

替换int某种unsigned类型是一个问题,因为我们经常使用OpenMP pragma,它需要计数器int.

我即将压制(数百个)警告,但我担心我错过了一些优雅的解决方案.

在迭代器上.我认为在适当的地方应用迭代器很棒.我正在使用的代码永远不会将随机访问容器更改为list某种东西(因此迭代int i已经是容器不可知),并且总是需要当前索引.您需要键入的所有其他代码(迭代器本身和索引)只会使问题复杂化并模糊底层代码的简单性.

c++ refactoring

71
推荐指数
5
解决办法
9万
查看次数

我应该在C++中了解结构化异常(SEH)?

每个C++开发人员都应该知道哪些关于结构化异常的重要观点?

c++ exception-handling exception seh structured-exception

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

C++模板编译错误:在'>'标记之前的预期primary-expression

此代码编译并按预期工作(它在运行时抛出,但没关系):

#include <iostream>
#include <boost/property_tree/ptree.hpp>

void foo(boost::property_tree::ptree &pt) 
{
    std::cout << pt.get<std::string>("path"); // <---
}

int main()
{
    boost::property_tree::ptree pt;
    foo(pt);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是只要我添加模板并将foo原型更改为

template<class ptree>
void foo(ptree &pt)
Run Code Online (Sandbox Code Playgroud)

我在GCC中遇到错误:

test_ptree.cpp: In function ‘void foo(ptree&)’:
test_ptree.cpp:7: error: expected primary-expression before ‘>’ token
Run Code Online (Sandbox Code Playgroud)

但MSVC++没有错误!错误在标记的行中<---.再次,如果我将问题线改为

--- std::cout << pt.get<std::string>("path"); // <---
+++ std::cout << pt.get("path", "default value");
Run Code Online (Sandbox Code Playgroud)

错误消失(问题是明确的<std::string>).

Boost.PropertyTree需要Boost> = 1.41.请帮助我理解并修复此错误.


请参阅模板:模板功能与类的模板成员函数不兼容 - 一个类似的流行问题包含其他好的答案和解释.

c++ gcc boost compiler-errors visual-c++

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

将Python控制台集成到GUI C++应用程序中

我将在一些其他控件下面添加一个python控制台小部件(进入C++ GUI): Python控制台截图

许多类将暴露给python代码,包括对GUI的一些访问(也许我会考虑PyQt).

我应该在一个单独的线程中运行Python代码吗?

我认为这是一个很好的方法,因为GUI在执行长命令时不会被冻结.但另一方面,是否应禁用其他控件来保留对象的状态并避免冲突?

c++ python integration user-interface multithreading

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

Qt:擦除背景(Windows Aero Glass)

更新

有关使用Qt和DWM的示例,请参阅在Windows上使用Blur Behind.替代文字http://labs.trolltech.com/blogs/wp-content/uploads/2009/09/blurbehind2.png


原始问题:

我想用Qt创建一个Windows Aero Glass窗口,现在它看起来像这样: 替代文字

但在调用一些my_window->repaint()我的窗口后,标签就会破碎: 替代文字

但现在,如果我稍微调整窗口大小,它会重新正确重新绘制.


问题是:如何擦除窗口背景,以便小部件在干净的玻璃上绘画?


重现问题的简短代码是(Vista with Aero):

class Window(QWidget):
    def __init__(self, *args):
        QWidget.__init__(self, *args)
        self.setLayout(QVBoxLayout())
        self.layout().addWidget(QLabel("This is the text"))

        # let the whole window be a glass
        self.setAttribute(Qt.WA_NoSystemBackground)
        from ctypes import windll, c_int, byref
        windll.dwmapi.DwmExtendFrameIntoClientArea(c_int(self.winId()), byref(c_int(-1)))
    def mousePressEvent(self, event):
        self.repaint()
Run Code Online (Sandbox Code Playgroud)

您可以立即单击该窗口,也可以单击Alt-Tab几次.

无论如何,使用带有Aero Glass的标签并不是我所需要的,因为QLabel不知道如何用一缕光线(如窗口的标题)来绘制自己.我需要的是清洁"玻璃"的一般方法.

pyqt dwm windows-vista aero-glass

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

如何更改提交时间(尚未推送)?

如何更改我在本地存储库中提交的时间?

假设我已经完成了几次提交,并注意到我的计算机上的日期是错误的.假设这些提交还没有推到任何地方.

mercurial commit repository

19
推荐指数
3
解决办法
5629
查看次数

Qt Widget Overlays

如何在Qt中叠加小部件?

我想创建一些小部件并将它们放置在布局之外,而是在更改其他小部件的几何体时调整它们的大小和位置.

像屏幕截图上的按钮:

替代文字

language-agnostic layout qt overlay

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

IIS后面的HTTP服务器:传递身份验证标头

我有一个配置了Windows身份验证和URL重写的IIS实例,因此它基本上用作反向代理.我的后端服务器(在Linux上运行)需要一个REMOTE_USER标头.是否可以配置IIS以将有关经过身份验证的用户的信息传递给后端服务器?

authentication iis reverse-proxy basic-authentication http-headers

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

分发大型支持Python的应用程序:最佳实践

有一个庞大的Python应用程序,包含许多第三方包和二进制库.以下是我的要求概述:

  • 跨平台(目前是Windows和现代Linux发行版)
  • 安装批次(比方说> 100 MB)的二进制库(Windows上的DLL)
  • 安装第三方Python包(其中一些不能使用像这样的工具安装在Windows上easy_install)
  • 安装所需的Visual Studio可再发行组件包
  • 如果可能,保留我的包的文件布局(没有压缩蛋)
  • 删除所有包和库的明确方法
  • 分发测试套件(py.test在我的情况下)
  • .pyc无源分发选项(-only)

该应用程序至少应该是"可移植的"Python包(可以使用VirtualEnv安装在任何地方).

我有什么选择?我应该坚持使用setuptools(distribute)吗?我应该推出自定义安装程序吗?

正在开发的应用程序是专有的,但它为开发人员提供了Python API,我希望它看起来和感觉尽可能的pythonish和hackerish.

python distribution setuptools

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