有没有一种简单的方法来改变GTK中文本元素的字体大小?现在,我能做的最好的事情就是set_markup在标签上做,有些傻话:
lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text)
Run Code Online (Sandbox Code Playgroud)
这1)要求我设置字体,2)似乎需要很多开销(必须解析标记),3)会让改变按钮等字体大小变得烦人.有没有更好的办法?
A PIL.Image.grab()大约需要0.5秒.这只是为了从屏幕上获取数据到我的应用程序,而我没有任何处理.另一方面,FRAPS可以截取高达30 FPS的屏幕截图.我有什么方法可以从Python程序中做同样的事情吗?如果没有,C程序怎么样?(我可以使用Python程序与它接口,可能...)
从这个问题来看,我现在正在进行一级错误处理.也就是说,我调用一个调用另一个更大函数的函数,我希望它在更大的函数中失败,而不是在较小的函数中.具体的例子.代码是:
import sys, os
def workerFunc():
return 4/0
def runTest():
try:
print workerFunc()
except:
ty,val,tb = sys.exc_info()
print "Error: %s,%s,%s" % (
ty.__name__,
os.path.split(tb.tb_frame.f_code.co_filename)[1],
tb.tb_lineno)
runTest()
Run Code Online (Sandbox Code Playgroud)
输出是:
Error: ZeroDivisionError,tmp2.py,8
Run Code Online (Sandbox Code Playgroud)
但第8行是"print workerFunc()" - 我知道该行失败了,但我想要之前的行:
Error: ZeroDivisionError,tmp2.py,4
Run Code Online (Sandbox Code Playgroud) 在Haskell中是否有任何方法可以得到常数,这是可以用双精度表示的最大和最小可能的正有理数大于零?
与此问题类似,我的HTML看起来像这样:
<body id="body" onload="loader()">
</body>
Run Code Online (Sandbox Code Playgroud)
正如本文所述,我总是假设onload没有任何参数.但是,我命名了这个参数,并做了一些深入的检查,发现我有一个看起来像这样的对象:
{originalTarget : DOM,
preventCapture : function,
target : DOM,
cancelable : Bool,
currentTarget : DOM,
timeStamp : Int,
bubbles : Bool,
type : String,
eventPhase : Int,
preventDefault : function,
initEvent : function,
stopPropagation : function,
CAPTURING_PHASE : Int,
AT_TARGET : Int,
BUBBLING_PHASE : Int,
explicitOriginalTarget : DOM,
preventBubble : function,
isTrusted : Bool,
MOUSEDOWN : Int,
MOUSEUP : Int,
MOUSEOVER : Int,
//... (more constants)
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道那是什么,或者它的类名是什么?
使用以下两种技术在窗口中移动鼠标有什么区别吗?
win32api.SetCursorPos((x,y))
Run Code Online (Sandbox Code Playgroud)
对比:
nx = x*65535/win32api.GetSystemMetrics(0)
ny = y*65535/win32api.GetSystemMetrics(1)
win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny)
Run Code Online (Sandbox Code Playgroud)
Windows 处理移动的方式是否有什么不同?
我正在创建一个函数将模型对象转换为字典(并且所有foreignkeys字典都是递归的).我从朋友那里了解到我可以通过查看获得模型的字段obj._meta.fields,但我无法在任何地方找到相关文档.
我如何获得模型的字段?我怎样才能解释在_meta课堂上可以找到什么?
这是一个选择一组所需行的查询:
select max(a), b, c, d, e
from T
group by b, c, d, e;
Run Code Online (Sandbox Code Playgroud)
该表在列中有一个主键id.
我想通过从每个行中获取主键来在另一个查询中标识这些行.我该怎么办?这不起作用:
select id, max(a), b, c, d, e
from T
group by b, c, d, e;
ERROR: column "T.id" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)
我在其他一些postgresql问题中尝试了这个,但没有运气:
select distinct on (id) id, max(a), b, c, d, e
from T
group by b, c, d, e;
ERROR: column "T.id" must appear in the GROUP BY clause …Run Code Online (Sandbox Code Playgroud) 我正在使用一些javascript代码,我希望能够在函数调用的上下文中运行一个交互式控制台 - 也就是说,基本上就是python的import pdb; pdb.set_trace()完成.有没有办法做到这一点?如果不是,最好的近似是什么?
我目前正在使用Chrome的控制台搞乱事情,我基本上喜欢被放到函数调用的中间,并使用Chrome的控制台来查看局部变量等.
在Python中,给定一个列表,我可以通过一个关键函数对它进行排序,例如:
>>> def get_value(k):
... print "heavy computation for", k
... return {"a": 100, "b": 30, "c": 50, "d": 0}[k]
...
>>> items = ['a', 'b', 'c', 'd']
>>> items.sort(key=get_value)
heavy computation for a
heavy computation for b
heavy computation for c
heavy computation for d
>>> items
['d', 'b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)
如您所见,列表不是按字母顺序排序,而是按返回值排序get_value().
C++中有等价的吗?std::sort()只允许我提供自定义比较器(相当于Python items.sort(cmp=...)),而不是关键功能.如果没有,是否有任何经过充分测试,高效,公开可用的等效实现,我可以放入我的代码?
请注意,Python版本仅为key每个元素调用一次函数,而不是每次比较调用两次.
python ×6
javascript ×2
automation ×1
browser ×1
c++ ×1
constants ×1
database ×1
debugging ×1
django ×1
dom ×1
equivalent ×1
events ×1
exception ×1
firefox ×1
fonts ×1
group-by ×1
gtk ×1
gtk2 ×1
haskell ×1
image ×1
input ×1
interactive ×1
optimization ×1
orm ×1
performance ×1
postgresql ×1
pygtk ×1
sorting ×1
sql ×1
winapi ×1