我正在寻找一个Python的交互式图形库.
通过" 图形 ",我的意思是由一组顶点连接的一组节点(不是xy轴上的值图,也不是像素网格).
通过"交互式",我的意思是我可以拖放节点并且我需要能够点击节点/顶点并让库将节点/顶点传递给我的回调,这可以添加/删除节点/顶点或显示信息(我无法在启动时加载完整的图形,因为数据集太大/太复杂;相反,我将根据用户输入仅加载必要的数据切片).
通过Python,我的意思是编程语言Python,图形库应该有CPython绑定.我有Python 2.7和Python 3.1,但如果需要可以降级到2.6.这种语言要求是因为我正在使用的数据集只有Python绑定.
图形库必须支持有向图,并能够自动布局节点.我需要在节点上放置标签.
优选地,布局算法应该将相邻节点放置在彼此附近.它应该能够在我4岁的笔记本电脑中合理地处理100-1000个节点和大约300-4000个顶点(我通常从大约100个节点开始,但数量可能会根据用户输入而扩展).优选地,它应该是具有不太多依赖性的库(除了Gnome之外).开源是首选.
我已经使用Tkinter Canvas编写了一个简单的程序原型,但我需要一个更严肃的图形库来扩展程序.我看过graphviz和matplotlib,但显然它们只是用于处理静态图形,显然需要大量的工作来进行交互式操作(如果我错了就纠正我,我只是简单地看一下) .我也尝试将图形生成为SVG文件并使用Inkscape进行查看,但它太慢并且需要太多内存,并且由于顶点数量太多而变得混乱.
在"Fragments for All"中,Android SDK Tech Lead的Xavier Ducrohet表示谷歌将发布SDK Manager的Android兼容性软件包.
我安装了它,但是,我现在该如何使用它?
如何在我的项目中集成Android兼容性包?
我使用以下命令运行子进程:
p = subprocess.Popen("subprocess",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
此子进程可以立即退出stderr上的错误,也可以继续运行.我想检测这些条件中的任何一个 - 后者等待几秒钟.
我试过这个:
SECONDS_TO_WAIT = 10
select.select([],
[p.stdout, p.stderr],
[p.stdout, p.stderr],
SECONDS_TO_WAIT)
Run Code Online (Sandbox Code Playgroud)
但它只是返回:
([],[],[])
Run Code Online (Sandbox Code Playgroud)
无论哪种条件.我能做什么?
我正在尝试创建一个水平滚动列表.当Javascript启用时,我将用一个花哨的版本替换它,但我希望标记和CSS在没有Javascript的情况下在合理的现代浏览器上看起来很好(任何以任何方式使用Javascript的建议都是关闭的).
我目前的标记/ CSS工作,但这是我不喜欢它:
divS(那些ID #extra1,#extra2),其仅仅是造型的目的.有没有办法消除这个额外的div?<a>标签由水平列表分开,我想最好让他们在一起.有没有办法让它们靠近在一起并在CSS中干净地分开它们?除此之外,您是否知道讨论此类事情的任何教程?我已经看过几个教程,它们展示了整个页面的滚动,我从中获取了一些想法,但我找不到任何展示滚动ul/ol元素的东西.
可能有用的额外信息:
我正在使用@ font-face嵌入在TypeFront上托管的字体,但浏览器不会缓存我的字体(Firefox 3.6.13和Epiphany 2.30.2).这导致每次页面加载时在Firefox和MFOMT(缺少文本的瞬间闪现,我只是在一个上面)的FOUC(Flash of Unstyled Content)在Epiphany上(我第一次使用FOUC/MFOMT)页面加载,但不是每次都加载).
我试图避免在可能的情况下在Base64中嵌入CSS中的字体,我不能自己托管字体.
为什么字体没有缓存?有没有其他免费的字体托管服务没有这个问题?
测试页面:
<!DOCTYPE html>
<html>
<head>
<title>TypeFront Cache Test</title>
<style>
@font-face {
font-family: "Journal";
src: url("http://typefront.com/fonts/825588825.ttf") format("truetype");
}
h1 {
font-family: "Journal";
}
</style>
</head>
<body>
<h1>Test text</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我在Firebug观察,Net标签显示的字体被送达"200 OK"每一个页面加载的时间,而不是"304未修改"或其他迹象表明,正在使用一个缓存的字体(如浏览器甚至没有尝试一个HTTP请求).
HTTP标头:
Response Headers
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 26 Feb 2011 12:57:18 GMT
Content-Type: font/ttf
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Content-Transfer-Encoding: binary
Access-Control-Allow-Origin: *
Content-Disposition: attachment; filename="typefront_735a460727.ttf"
Cache-Control: max-age=31536000
Expires: Sun, 26 Feb 2012 …Run Code Online (Sandbox Code Playgroud) 这已经困扰了我一段时间,例如,如果我正在尝试编写这段代码:
// find the length of an array
#define ARRAY_LENGTH(arr) (sizeof(arr)/sizeof(int))
// declare an array together with a variable containing the array's length
#define ARRAY(name, arr) int name[] = arr; size_t name##_length = ARRAY_LENGTH(name);
int main() {
ARRAY(myarr, {1, 2, 3});
}
Run Code Online (Sandbox Code Playgroud)
代码给出了这个错误:
<stdin>:8:31: error: macro "ARRAY" passed 4 arguments, but takes just 2
Run Code Online (Sandbox Code Playgroud)
因为它看作ARRAY(myarr, {1, 2, 3});传递ARRAY参数myarr,{1和2,和3}.有没有办法将数组文字传递给宏?
编辑:在一些较复杂的宏,我需要的,我可能还需要两个或更多的数组传递给宏,所以可变参数宏不起作用.
我是Java新手,我正在学习基础知识.我正在研究该toString方法以及如何在我自己的类中覆盖它.我只是想知道为什么toString要这样public?是因为它是在Object课堂上定义的吗?
我有一个从std :: cin读取用户输入的函数,我想编写一个将一些字符串插入std :: cin的unittest,这样以后从std :: cin中提取将读取该字符串而不是暂停键盘输入.
理想情况下,我会更改函数签名,以便我可以将自定义istream作为参数传递,但我不能这样做,因为我有一个我无法更改的固定界面.
cin.putback()几乎就是我想要的,但是它一次只插入一个字符,并且它以相反的顺序插入它们(但是我读到某个地方放回原本不存在的字符可能会有危险,尽管该网站没有详细说明原因).我已经尝试了几种方法将字符串注入cin的内部缓冲区cin.rdbuf(),但没有一种方法可以正常工作.我也考虑过使用外部测试脚本或创建子进程,但是我想首先考虑使用纯C++进行测试.
那么,是否有任何方法将字符串放入cin?或者你知道更好的方式来注入我的"假键盘输入"吗?
在C++中,可以创建一个返回对私有字段的引用的访问器.
class Cls {
private:
int _attr;
public:
int& attr() { return _attr; }
};
Run Code Online (Sandbox Code Playgroud)
这样可以如下访问该属性:
// set
c.attr() = 4;
// get
cout << c.attr() << endl;
Run Code Online (Sandbox Code Playgroud)
这种风格的访问者惯用/良好实践吗?一个普通的C++程序员会看到这种访问者的风格会感到惊讶吗?(提示:我第一次看到这个时很惊讶,但有点喜欢这种风格)