小编hyp*_*not的帖子

如何为Visual Studio 2010构建Qt

我努力寻找一种方法,为使用Qt和Visual Studio 2010提供稳定的解决方案,因此在收集了所有信息和一些反复试验后,我想将我的解决方案写入指南.

问题,或者为什么不能使用预构建的二进制文件?

似乎使用为Visual Studio 2008构建的二进制文件可能在某些特殊情况下工作,但我发现它们无法工作.在我的情况下,他们编译好,但他们产生运行时错误,如下所示:

problem2

或者从Visual Studio 2010启动时:

问题

更新:我发现一篇博客文章分析了为什么它适用于某些人,而不适用于其他人.总之,这取决于您是否在同一台计算机上安装了Visual Studio 2008. http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/

最重要的是(我愚蠢地没有意识到),如果你没有安装Visual Studio 2008,你就不能使用Visual Studio 2008编译的库和dll(可在Qt网页上找到).原因是你下载的Qt SDK是一个调试版本,它依赖于VC9.0 DebugCRT,这意味着它需要安装Visual C++ 2008 Debug Runtime,它不能作为可再发行的安装程序使用.安装DebugCRT的唯一方法是安装整个Visual Studio 2008.

c++ qt build visual-studio-2010 visual-studio

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

M_PI适用于math.h,但不适用于Visual Studio中的cmath

我正在使用Visual Studio 2010.我已经读过,在C++中,最好使用<cmath>而不是<math.h>.

但是在我编写的程序中(Win32控制台应用程序,空项目),如果我写:

#define _USE_MATH_DEFINES
#include <math.h>
Run Code Online (Sandbox Code Playgroud)

如果我写的话,它会编译

#define _USE_MATH_DEFINES
#include <cmath>
Run Code Online (Sandbox Code Playgroud)

它失败了

错误C2065:'M_PI':未声明的标识符

这是正常的吗?如果我使用cmath或math.h是否重要?如果是,我怎样才能使用cmath?

更新:如果我在GUI中定义_USE_MATH_DEFINES,它可以工作.任何线索为什么会发生这种情况?

c++ visual-studio-2010 visual-studio

85
推荐指数
5
解决办法
12万
查看次数

如何以交互方式更新matplotlib的imshow()窗口?

我正在研究一些计算机视觉算法,我想展示一个numpy数组在每一步中如何变化.

现在有用的是,如果imshow( array )我的代码末尾有一个简单的,窗口会显示并显示最终的图像.

然而,我想要做的是更新并显示imshow窗口,因为图像在每次迭代中都会发生变化.

例如,我想做:

import numpy as np
import matplotlib.pyplot as plt
import time

array = np.zeros( (100, 100), np.uint8 )

for i in xrange( 0, 100 ):
    for j in xrange( 0, 50 ):
        array[j, i] = 1

        #_show_updated_window_briefly_
        plt.imshow( array )
        time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

问题是这样,只有整个计算完成后,Matplotlib窗口才会被激活.

我已经尝试了原生matplotlib和pyplot,但结果是一样的.为了绘制命令我找到了一个.ion()开关,但在这里它似乎不起作用.

Q1.连续显示numpy数组更新的最佳方法是什么(实际上是uint8灰度图像)?

Q2.是否可以使用动画功能执行此操作,如动态图像示例中所示?我想在循环中调用一个函数,因此我不知道如何使用动画函数来实现它.

python numpy matplotlib spyder

36
推荐指数
3
解决办法
5万
查看次数

max_input_time是否影响了PHP文件上传?

我正在研究为PHP设置默认值的最佳值.我看到了许多矛盾的观点max_input_time.

这个答案说,他认为文件上传不计入计时器:https: //stackoverflow.com/a/3758522/518169

在官方PHP文档中,有一个巨大的红色警告说:

max_input_time设置允许脚本接收输入的最长时间(以秒为单位); 这包括文件上传.对于大型或多个文件或较慢连接的用户,可能会超出默认值60秒

来源:http://php.net/manual/en/features.file-upload.common-pitfalls.php,最后更新时间:2012年7月6日星期五

因此,它似乎max_input_time 确实影响文件上传,并确保访问者可以上传说20 MB文件,即使从慢速或移动连接,默认值60绝对不够!

您建议将此值设置为什么?300?

另外,max_execution_time和之间有什么关系max_input_time吗?例如,那max_execution_time需要大于max_input_time

php

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

PHP中的5分钟文件缓存

我有一个非常简单的问题:在PHP中下载文件的最佳方法是什么,但只有在超过5分钟之前下载了本地版本?

在我的实际情况中,我想从远程托管的csv文件中获取数据,我目前正在使用它

$file = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

没有任何本地副本或缓存.将此转换为缓存版本的最简单方法是什么,最终结果不会改变($ file保持不变),但如果不久前(例如5分钟)取出它,它会使用本地副本?

php url curl download

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

与<img>的html5垂直间距问题

我正在尝试创建一个布局,其中div之间的垂直间距是像素完美.到目前为止,我已经排除了几乎所有的大网格系统(960.gs,Blueprint),因为它们根本没有解决垂直间距的问题.使用它们,设置div之间垂直间距的唯一方法是使用body {line-height}属性并使用它来操纵div间距.我不会称之为解决方案,因为它会破坏您的模板,取决于font-family,并且不允许您为不同的div使用不同的间距.

我发现唯一一个对垂直间距有适当支持的网格系统是Golden Grid,它不使用body {line-height},但它有自己的.clear {height:5px}用于垂直间距.

我的问题是无论我如何尝试,我都无法在HTML5中使用间距.我说的是垂直排列的图像,它们之间没有间隙.在XHTML过渡模式中,一切都很完美,图像完美对齐,但在HTML5模式下,它们之间存在垂直间隙.Chrome中的差距为2px,Firefox中的差距为2-3 px,在行之间交替显示.我认为在HTML5模式下使用每个网格系统都是如此.我不知道在纯HTML5中编写此代码的最佳方法是什么,所以我只是尝试了网格系统.垂直间隙也出现在960.gs,蓝图中.

我发现的一个解决方案可能是设置body {line-height:0}并在每个印刷标签中定义line-height.但我不明白为什么这样一个简单的案例需要这么糟糕的黑客:垂直排列的图像.为什么HTML5模式下的浏览器与XHTML Transitional模式不同?

在这里,我有相同的页面,没有任何改变,只有doctype.XHTML在每个浏览器中都是像素完美的,HTML5有一个差距,并且不同于浏览器.

使HTML5示例像XHTML过渡一样工作的最佳方法是什么?

更新:thirtydot回答了问题,如果我包含img {display:block; HTML5版本的行为与XHTML Transitional完全相同.谢谢thirtydot!

但是在关闭这个帖子之前,有人可以向我解释为什么会这样:

  • 为什么所有浏览器在HTML5模式下的行为都不同,并且当未指定为display:block时,img元素之间的所有浏览器都有不同的垂直间隙.看看上面的html5链接的浏览器比较网站,它将从浏览器到浏览器不同.它们之间的间隙在2到4像素之间.
  • 为什么XHTML Transitional不需要这个hack
  • 为什么XHTML Strict也会产生垂直间隙
  • 使用img {display:block; 在reset.css表中?

html css grid xhtml html5

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

如何撤消"git push --mirror"?

在git/github项目中,我正在分支机构工作.推动后,它说:

git push
To git@github.com:...
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:...'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题,在Googleing上我提出了这个问题:

git push --mirror
Run Code Online (Sandbox Code Playgroud)

我发出了以下命令,现在看来我已从服务器中删除了很多分支.

Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:...
 - [deleted]         develop
 + 797beee...bafbc50 master -> master (forced update)
 - [deleted]         milestone
 - [deleted]         robot
 - …
Run Code Online (Sandbox Code Playgroud)

git github

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

如何将矢量分成n个"几乎相等"的部分

我有一个问题,我想使用ImageMagick的convert.exe合并大量的图像,但在Windows下我有一个8192字节长的命令行限制.

我的解决方案是将任务拆分为更小的子任务,运行它们,并执行将它们组合在一起的最终任务.

我的想法是编写一个函数,它接受一个图像矢量和一个整数,并将矢量分成n个子矢量,所有子矢量都具有"几乎相等"的部分.

因此,例如,如果我想将11分成3组,那么它将是4-4-3.

你能告诉我怎么用C++做的吗?我的意思是,写一个函数

split_vec( const vector<image> &images, int split )
Run Code Online (Sandbox Code Playgroud)

哪个分裂?

另外,如果我不需要创建新的向量,只是遍历子部分,你能告诉我最有效的方法吗?喜欢的std::substr功能有std::string

注意:我已经在项目中使用了Boost,所以如果在Boost中有一些不错的工具,那么它对我来说是完美的.

c++ boost iterator vector visual-studio-2010

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

如何使用php从php脚本的输出生成静态html文件

我想从php文件生成一个静态html页面,并将其保存在其他php脚本中.该脚本运行一堆echo函数,在浏览器中查看时是一个很好的html页面.但是当我运行file_get_contents时,它会将该文件作为文件系统上的文件打开,而不是作为url中的文件.

我是否需要以localhost/site/categories.php方式调用file_get_contents?我怎么能得到这条路?这是错误的代码:

<?php
$file = file_get_contents("categories.php");
file_put_contents("categories.html", $file);
?>
Run Code Online (Sandbox Code Playgroud)

php static get file

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

简化Qt构建的推荐标志

我正在尝试构建Qt,因为它是Visual Studio 2010所必需的.构建脚本(configure.exe)非常简单,但默认情况下编译需要很长时间.在带有SSD的快速笔记本上等了一个小时后,我已经放弃了(不使用标志,只使用configure.exe).

基本的轻量级Qt应用程序的推荐标志是什么?我的意思是有人学习Qt,谁不需要WebKit等等.

我收集了我发现的最有用的链接:

Qt configure的参考页面:http://doc.qt.io/qt-4.8/configure-options.html

Ben对这个问题的建议:使用Visual C++ 2010构建Qt 4.5

-no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -no-qt3support -fast

Rubenvb对这个问题的建议:如何将Qt编译为静态

  1. 禁用调试: -release
  2. 禁用您不需要的模块,尤其是QtWebKit: -no-webkit -no-script -no-scripttools -no-qt3support -nomake demos -nomake tools -nomake examples
  3. 禁用LTCG支持,它具有生成巨大静态库的令人讨厌的副作用: no-ltcg

qt makefile build configure visual-studio-2010

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