我正在尝试使用PyGObject和python 3编写简单的图形编辑器.我需要使用鼠标绘制不同颜色和宽度的线条.我找到了许多像这样的例子,但没有更复杂.
如何在"绘制"事件之间保存绘制的图像?是否有增量绘图方式或是否必须在每个'draw'事件上重绘窗格?我发现我可以保存路径但是如何保存绘制线条的宽度和颜色?有没有办法在'draw'回调之外创建图像并且只在回调中应用(绘制)它?
这就是我现在所拥有的.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk, Gdk
import os
class App(object):
main_ui = os.path.join(os.path.dirname(__file__), 'gui.glade')
def __init__(self):
self.builder = Gtk.Builder()
self.builder.add_from_file(self.main_ui)
self.main_window.connect('destroy', self.quit)
self.mw_quit_button.connect('clicked', self.quit)
self.mw_graph_editor_button.connect('clicked', self.show_window, self.graph_editor_window)
self.graph_editor_window.connect('delete-event', self.hide_window_delete)
self.ge_menubar_file_quit.connect('activate', self.hide_window, self.graph_editor_window)
self.ge_toolbar_quit.connect('clicked', self.hide_window, self.graph_editor_window)
self.ge_drawingarea.connect('motion-notify-event', self.pointer_motion)
self.ge_drawingarea.connect('motion-notify-event', self.show_coordinates)
self.ge_drawingarea.connect('draw', self.draw_callback)
self.path = None
self.coord = (0, 0)
self.rgb = (0, 0, 0)
def __getattr__(self, name):
obj = self.builder.get_object(name)
if not obj:
raise AttributeError("Object {0} has no …
Run Code Online (Sandbox Code Playgroud) 我正试图用siege 3.0.1测试我的网站.但似乎围攻不发送POST数据.这是我从网络浏览器获得的请求
POST / HTTP/1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cache-Control: no-cache
Content-Length: 130
Content-Type: application/x-www-form-urlencoded
Host: rsc
Origin: http://rsc
Pragma: no-cache
Referer: http://rsc/
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36
X-Forwarded-For: 127.0.0.1
X-Forwarded-Proto: http
X-Real-Ip: 127.0.0.1
came_from=http%3A%2F%2Frsc%2F&login=***&password=***&form.login=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C
Run Code Online (Sandbox Code Playgroud)
这里是围攻的请求
siege -g "http://rsc/ POST came_from=http%3A%2F%2Frsc%2F&login=***&password=***&form.login=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C"
POST / HTTP/1.0
Accept: */*
Accept-Encoding:
Content-Length: 111
Content-Type: application/x-www-form-urlencoded
Host: rsc
User-Agent: JoeDog/1.00 [en] (X11; I; Siege 3.0.1)
X-Forwarded-For: 127.0.0.1
X-Forwarded-Proto: http
X-Real-Ip: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?我检查了围攻文档,它没有说什么关于POST,除了我应该写POST my=params
后url.
我尝试使用带有优化标志-O1/-O2/-O3/-Og的gcc-5.1.0来编译一大块软件.它给了我警告或者-Wmaybe-uninitialized
或-Wuninitialized
在运行时失败.调试后我找到了导致它的代码,但是我无法理解为什么.我减少了代码以重现失败:
#include <cstdlib>
#include <iostream>
template<class T>
struct foo {
template<class U>
char bar(const U &x) {
//return id(x)[0];
const T &y = id(x);
return y[0];
}
const T &id(const T &elem) {
return elem;
}
};
int main(void) {
foo<const char *> f;
char *str = "hello world";
//std::cout << f.bar((const char *)str) << std::endl;
std::cout << f.bar(str) << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
gcc-5.1.0给出以下警告:
g++ -Og -Wall -Wextra -Wno-write-strings test.cpp -o test
test.cpp: In function …
Run Code Online (Sandbox Code Playgroud) 我有这样的查询:
"filter": {
"query": {
"terms": { "user": ["jonh", "doe", ..., "asdf"]}
}
}
对于我们的用例,数组中的用户数量是任意大的.但是,"SearchPhaseExecutionException[Failed to execute phase [query], total failure;
当数组大小超过时,ElasticSearch似乎失败了1027
.
这是预期的行为吗?如果是这样,有没有办法增加接受数组的大小?
c++ ×1
cairo ×1
gcc ×1
gcc-warning ×1
gtk ×1
load-testing ×1
optimization ×1
post ×1
pygobject ×1
python ×1
python-3.x ×1
templates ×1