在tkinter Entry小部件中交互式验证内容的推荐技术是什么?
我已经阅读了关于使用validate=True和的帖子validatecommand=command,并且看起来这些功能受限于它们在validatecommand命令更新Entry小部件的值时被清除的事实.
鉴于这种行为,我们应该绑定的KeyPress,Cut以及Paste事件和监视/更新我们的Entry小部件的价值,通过这件事情?(以及我可能错过的其他相关事件?)
或者我们是否应该完全忘记交互式验证并仅对FocusOut事件进行验证?
有没有办法在不知道小部件的字体系列和字体大小的情况下更改Tkinter小部件的字体样式?
使用案例:我们使用标准Tkinter小部件(标签,条目,文本等)创建UI .在我们的应用程序运行时,我们可能希望使用该.config()方法动态地将这些小部件的字体样式更改为粗体和/或斜体.遗憾的是,如果没有指定字体的族和大小,似乎无法指定字体规范.
以下是我们想要做的事情的例子,但这些例子都不起作用:
widget.config(font='bold')
Run Code Online (Sandbox Code Playgroud)
要么
widget.config(font=( None, None, 'bold' ))
Run Code Online (Sandbox Code Playgroud) 是否有关于何时应该使用包装与网格布局的最佳实践提示?
从我通过谷歌阅读的内容来看,似乎是网格可以处理任何包装方案但反之亦然.
为了开始对话,似乎有一个有利于网格与包的用例是当人们想要显示/隐藏小部件时.
可以通过以下方法控制Tkinter窗口的大小:
.minsize()
.maxsize()
.resizable()
Run Code Online (Sandbox Code Playgroud)
是否有相同的方法来控制Tkinter或ttk帧的大小?
@Bryan:我将你的frame1.pack代码改为:
frame1.pack(fill='both', expand=True)
frame1.bind( '<Configure>', maxsize )
Run Code Online (Sandbox Code Playgroud)
我添加了这个事件处理程序:
# attempt to prevent frame from growing past a certain size
def maxsize( event=None ):
print frame1.winfo_width()
if frame1.winfo_width() > 200:
print 'frame1 wider than 200 pixels'
frame1.pack_propagate(0)
frame1.config( width=200 )
return 'break'
Run Code Online (Sandbox Code Playgroud)
上面的事件处理程序检测到帧的宽度太大,但无法阻止大小的增加发生.这是Tkinter的限制还是我误解了你的解释?
有没有办法在Word 2003和/或Word 2007文档中自动代码签署VBA项目?
通过自动化我的意思是通过命令行实用程序或通过Word VBA自动化?
动机:我想编写几个Word模板的代码作为自动日常构建和分发周期的一部分.现在我们必须通过在Word中打开每个文档并重新签名来手动执行此操作.
谢谢你,马尔科姆
我正在使用Py2exe在Windows 7 Pro(64位)上使用Python 2.6(32位)编译CherryPy(3.1)服务器.
此服务器将在没有GUI的情况下运行.
问题:
如果在没有GUI的情况下运行,我是否需要关注为此应用程序添加清单文件?
我需要在我的exe中包含w9xpopen.exe吗?
到目前为止,我的有限测试表明我不需要在我的可执行文件中包含清单文件或w9xpopen.exe以使其正常工作.
评论赞赏.
谢谢你,马尔科姆
寻找有关跨程序会话保存复杂Python数据结构的最佳技术的建议.
这是我到目前为止提出的技术列表:
Pickle是最简单,最快速的技术,但我的理解是,不能保证pickle输出可以在各种版本的Python 2.x/3.x或跨32位和64位的Python实现中运行.
Json仅适用于简单的数据结构.Jsonpickle似乎纠正了这个并且似乎是为了在不同版本的Python中工作.
可以序列化为XML或数据库,但由于我们必须手动进行序列化,因此需要额外的努力.
谢谢你,马尔科姆
我正在寻找谷歌翻译的前端,支持使用NGETEXT样式复数转换GNU gettext PO文件,例如.msgstr [0] msgstr [n].
我找到了几个PO文件的免费翻译服务[1],但这些服务都不支持ngettext样式复数字符串.我们的PO文件有许多需要转换的复数.
注意:我们认为谷歌翻译并非接近生产质量.我们仅使用翻译的PO文件进行测试/概念验证演示.
任何建议赞赏.
马尔科姆
[1]免费,托管的PO翻译服务
使用基于Python的Babel gettext实用程序,是否有任何技术可以保留文件更新中的翻译者注释和旧("过时")翻译(标记为#~)?.po.pot
第一次过时的翻译在.po文件中并pybabel update运行时,翻译将标记为#~.这样,一方面,它被视为注释,直到翻译人员查看并更改它才会被使用,但另一方面,它不会被删除,因此翻译人员可以引用它,或者复制文本从它到其他翻译.
但是,下次pybabel update运行时,会从文件中永久删除所有注释.这意味着标记的翻译#~也会被删除.
例如,使用Babel版本0.9.6和Jinja2版本2.6,以及以下文件:
./babel.ini:
[jinja2: **/templates/**.html]
encoding = utf-8
Run Code Online (Sandbox Code Playgroud)
./templates/test.html:
<html><body>
<h1>{% trans %}My website{% endtrans %}</h1>
</body></html>
Run Code Online (Sandbox Code Playgroud)
./i18n/pt_PT/LC_MESSAGES/messages.po:
# ... header stuff generated from
# pybabel init -l pt_PT -d i18n -i i18n/messages.pot ...
# Don't forget, I want to remember something about this!
#~ msgid "My web page"
#~ msgstr "A minha página de …Run Code Online (Sandbox Code Playgroud) 我正在寻找所有Tkinter的主列表events.我整个上午一直在谷歌上搜索这样的名单而没有成功.任何对此类列表的引用都将不胜感激.