gpt4 book ai didi

python - Tkinter 编辑菜单,macos 中的特殊字符选项

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:25 25 4
gpt4 key购买 nike

我正在创建一个小 tkinter 应用程序。它有一个文本字段,现在我添加一个菜单,如下所示:

def _make_top_bar(self):
menubar = Menu(self.parent)
filemenu = # File menu definition, not relevant
menubar.add_cascade(label="File", menu=filemenu)

editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Clear", command=self.clear) # It clears the text field
menubar.add_cascade(label="Edit", menu=editmenu)
root.config(menu=menubar)

这会添加一个菜单,其中包含我定义的"file"菜单,但“编辑”菜单有两个额外的选项:“开始听写”和“特殊字符”(我尚未定义它们)。开始听写打开语音识别。特殊字符打开表情符号选择器。

edit menu

emoji selector

我真的不想在我的应用程序中使用表情符号选择器,因为它会导致错误。如果我双击表情符号,我会得到一个很长的堆栈跟踪:

2014-04-01 13:09:28.283 Python[4557:d07] -[NSConcreteMutableAttributedString characterAtIndex:]: unrecognized selector sent to instance 0x7fd83bf55ee0
2014-04-01 13:09:28.286 Python[4557:d07] (
0 CoreFoundation 0x00007fff8fd8925c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff9194ce75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8fd8c12d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff8fce73f2 ___forwarding___ + 1010
4 CoreFoundation 0x00007fff8fce6f78 _CF_forwarding_prep_0 + 120
5 libtk8.6.dylib 0x0000000108fe3b54 -[TKContentView(TKKeyEvent) insertText:] + 244
6 AppKit 0x00007fff8d1fe767 -[NSTextInputContext insertText:replacementRange:] + 379
7 AppKit 0x00007fff8d1fda18 -[NSTextInputContext handleTSMEvent:] + 8271
8 AppKit 0x00007fff8d1fb9a5 _NSTSMEventHandler + 205
9 HIToolbox 0x00007fff92fd01d4 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 892
10 HIToolbox 0x00007fff92fcf787 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 385
11 HIToolbox 0x00007fff92fe3880 SendEventToEventTarget + 40
...

如何删除菜单中的“特殊字符”条目?

最佳答案

我还没有找到从菜单中删除项目的方法,但有一种方法可以让它们不出现在菜单中。

不要调用菜单“编辑”,而是将其称为“编辑”(末尾有一个空格)。

这会阻止 MacOS 添加额外的项目,并且对用户来说没有任何不同:

def _make_top_bar(self):
menubar = Menu(self.parent)
filemenu = # File menu definition, not relevant
menubar.add_cascade(label="File", menu=filemenu)

editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Clear", command=self.clear) # It clears the text field
menubar.add_cascade(label="Edit ", menu=editmenu)
root.config(menu=menubar)

关于python - Tkinter 编辑菜单,macos 中的特殊字符选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com