python - 如何在 OSX 上用 Python 替换 "About Tkinter"菜单

标签 python menu tkinter

编辑:我指的是 OSX 应用程序菜单,其中包含关于和首选项菜单项(以及其他菜单项)。

对于知道正确搜索术语的人来说,这可能是另一个简单的方法,但是在花费数小时在 IDLE 中跟踪代码并搜索网络之后,我还不能完全将这些点联系起来。

我正在尝试用 Python 替换标准的关于菜单。 IDLE 至少部分地做到了这一点;该菜单仍命名为“关于 Python”,但它显示 IDLE 关于窗口。当从 Wing IDE(在 X11 下)运行时,idle 不显示其关于窗口,并且由于某种原因 IDLE 不想调试 idle.py...

我已经能够用“About MyProgramName”替换“About Python”,但我要么得到通常的“tk About”窗口,要么根本没有关于窗口。 IDLE 定义了一个虚拟事件以将控制权传递给它的“关于”窗口,而我一直在研究如何定义一个连接到菜单选择的虚拟事件。

所以,我有 root.bind('<<about-myprogram>>', about_dialog) ,但我该如何连接呢? tk.add_event() 需要一个序列...

有什么建议吗?

最佳答案

如果您正在谈论构建一个菜单栏,该菜单栏在菜单上有一个帮助条目,并且在帮助菜单上有一个关于条目,那是非常基本的东西,周围有很好的例子。

其中任何一个都会清楚地解释如何为您的应用创建顶级菜单。如果您在谈论其他事情,请澄清。

我搜索了 ::tk::mac::ShowPreference在我的 C:\Python27 目录下的源代码中,并运行了文件 C:\Python27\Lib\idlelib\macosxSupport.py 中的代码,看起来它正在做你想做的事情(或者至少足够接近你可以适应它)。

def config_dialog(event=None):
    from idlelib import configDialog
    root.instance_dict = flist.inversedict
    configDialog.ConfigDialog(root, 'Settings')

root.createcommand('::tk::mac::ShowPreferences', config_dialog)

我无法找到有关 createcommand() 方法的任何好的文档,但我确实确认它存在于 root 上我从 root = Tk() 创建的小部件.在寻找更多信息时,我也遇到了这个 little discussion关于这个问题。

关于python - 如何在 OSX 上用 Python 替换 "About Tkinter"菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441279/

相关文章:

php - 我需要 mysql-client 来进行 PHP/Python 等交互吗?

python - 使用 python 模块通过转换 unicode 字符 u'\u20ac' 打印欧元符号 €

python - Tkinter 中的顶级小部件

python - 退出 python 程序而不关闭 Tkinter 窗口

python - 用 Python 逼近数值二阶导数

python - 为什么 flask 的 jsonify 方法很慢?

c++ - Qt中带有子菜单的可点击菜单项

android - 在其他位置显示上下文操作栏

bash - 创建菜单文件并从中创建一个 bash 菜单列表

python-3.x - Python,不能在里面使用几何管理器包