可通过以下方式访问当前后端名称
>>> import matplotlib.pyplot as plt >>> plt.get_backend() 'GTKAgg'
有没有办法获得可以在特定机器上使用的所有后端的列表?
上次我不得不处理Java是2005年,从那时起我几乎忘了它的一切.
今天我需要在Java之上构建一个GUI应用程序.我想最好使用Scala/Groovy/Clojure语言之一.
问题是:哪个更适合桌面GUI编程?我的程序将转换并显示一系列jpeg/png文件+将有~10个对话框(每个对话框中包含大量选项和所有可能的小部件).
主要要求是紧凑性:我讨厌只编写十几行代码来绘制一个带按钮的简单框架.我在GUI中的背景是(大部分)Tcl/Tk和GTK +.
有没有办法检测我是否正在运行从我的.crx文件安装的扩展程序,或者通过"加载解压扩展..."按钮加载扩展名?
我知道在这种情况下ID差异,但我不想依赖代码中的硬编码字符串.
请考虑以下WSH代码段:
var query = GetObject("winmgmts:").ExecQuery("SELECT Name FROM Win32_Printer", "WQL", 0);
var e = new Enumerator(query);
for ( ; !e.atEnd(); e.moveNext ()) {
var p = e.item();
WScript.Echo(p.Name + " (" + p.Status + ")");
}
它在每一行打印一个打印机名称和括号中的"未定义"一词(因为对象中Status不存在p属性).问题是:我如何列出所有可用的属性p?通常的技术for (var i in p) {...}不起作用 - 似乎p对象中的属性不可枚举.
提前致谢.
例如,我有一个列表:
(setq foo '(1 2 3 4 5))
Run Code Online (Sandbox Code Playgroud)
然后我需要获得一个指向其第三个索引元素的指针(4在示例中包含):
(setq p (SOME_FUNCTION foo 3))
Run Code Online (Sandbox Code Playgroud)
具有p地址的元素可以移动到另一个列表,因此我不能只保存其当前foo的索引.
我需要稍后再说:
(push 0 foo)
=> (0 1 2 3 4 5)
(setf p 444)
Run Code Online (Sandbox Code Playgroud)
并且列表foo必须在(0 1 2 3 444 5)之后.
这在Emacs lisp中是否可行?
我必须将一个 RPM(为 Fedora 制作)作为 deb 包移植到 Ubuntu。
在 RPM .spec 文件中,我使用几个变量 ( $RPM_BUILD_ROOT, %{_libdir}, %{name}, %{version}) 创建符号链接:
%install
...
(cd $RPM_BUILD_ROOT/%{_bindir}; ln -sf %{_libdir}/%{name}-%{version}/%{name} . )
Run Code Online (Sandbox Code Playgroud)
(禁止使用相对符号链接(请不要问为什么)——这就是为什么ln命令看起来很奇怪。)
那么,debian/rulesmakefile中这些变量的等价物是什么?
提前致谢。
这是很容易设置的默认字体通过GtkTextView gtk_widget_modify_font(),但如何让哪一个是当前的?(我没有在小部件中使用任何标签.)
我想要一个函数,当使用不同数量的参数调用时,返回第一个非NULL函数.我试过这个,但它for循环核心转储:
char *first(char *args, ...)
{
va_list ap;
char *r = NULL, *p;
va_start(ap, args);
for (p = args; *p; p++) {
r = va_arg(ap, char*);
if (r != NULL) break;
}
va_end(ap);
return r;
}
char *q = NULL;
char *w = NULL;
char *e = "zzz";
char *r = NULL;
printf("%s\n", first(q, w, e, r)); // ought to print "zzz"
Run Code Online (Sandbox Code Playgroud) 我需要写入正在执行的可执行文件,但我无法打开它进行写入.例如:
#include <stdio.h>
#include <fcntl.h>
int main(int argc, char **argv)
{
int fd = open(argv[0], O_RDWR);
if (fd == -1) perror(NULL);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
% uname -rs FreeBSD 8.0-STABLE % ./example_ETXTBSY Text file busy
有一些解释是Linux中的ETXTBSY,但是,是否可以覆盖此错误?
PS
我不是想写病毒.
有人可以提供一个使用递归扩展变量 (REV) 的真实示例吗?在文档或各种博客文章中,人们只给出了无用的玩具示例,例如
foo = $(bar)
bar = $(ugh)
ugh = Huh?
Run Code Online (Sandbox Code Playgroud)
除了使用$(call). 我还发现,过去人们使用 REV 为特定目标的编译器提供附加参数,但现在认为这种技巧已经过时,因为 GNU Make 具有特定于目标的变量。