许多"现代"的Windows程序都有一个功能(有些人可能会觉得这很烦人),即在程序启动时向用户显示提示信息。
虽然这对于程序的高级用户来说可能没什么用,但经验表明这些提示对新手来说可能相当有帮助,所以现在越来越多的程序都有这个功能。对于wxPython程序员来说,实现这个功能极其简单。要显示一条提示,只需像这样调用wx.ShowTip
函数就足够了:
css
if showTipsAtStartup:
tipProvider = wx.CreateFileTipProvider("tips.txt", 0)
wx.ShowTip(windowParent, tipProvider)
del tipProvider
当然,你需要从某个地方获取提示文本------在上面的示例中,文本应该位于tips.txt 文件中,提示提供器会从该文件中读取文本。提示提供器只是一个从TipProvider派生出来的类的对象。它必须实现基类的一个纯虚函数GetTip 。对于由wx.CreateFileTipProvider
创建的提示提供器而言,提示内容就是文本文件中的各行内容。
如果你想实现自己的提示提供器(例如,如果你希望将提示内容硬编码到你的程序中),你只需要从TipProvider派生另一个类,并将指向这个类对象的指针传递给wx.ShowTip 函数,然后你根本就不需要wx.CreateFileTipProvider
了。
你很可能需要在某个地方保存上次显示的提示的索引,这样程序在启动时就不会总是显示同一个提示。由于你还需要记住是否要显示提示(如果用户在对话框中取消勾选了"启动时显示提示"复选框,你就不应该显示提示),所以你可能既想要存储上次显示的提示的索引(由GetCurrentTip返回),也要存储一个标志,该标志用于表明是否在启动时显示提示。
在tips.txt 文件中,以#
字符开头的行被视为注释,会被自动跳过。空行以及仅包含空格的行也会被跳过。
你可以通过将tips.txt 文件的每一行内容置于常用的翻译函数内,轻松添加运行时翻译功能。例如,你的tips.txt文件可能会是如下这样:
scss
_("This is my first tip")
_("This is my second tip")
现在,将你的tips.txt 文件添加到gettext用于搜索可翻译字符串的文件列表中。这样一来,这些提示内容就会被包含在你生成的.po
文件目录里,并在运行时与你应用程序中其余的可翻译字符串一同被翻译。
注意:tips.txt文件中的每一行都必须严格以三个字符开头,即下划线-左括号-双引号,并以双引号-右括号结尾,如上所示。另外,要记住,对于提示字符串中的任何双引号字符,都要用反斜杠-双引号进行转义。