2014-04-01 1 views
1

작은 tkinter 앱을 만들고 있습니다. 그것은 텍스트 필드를 가지고 있으며, 지금은 메뉴를 추가 해요 다음과 같이 : 나는 정의되어 있지만 편집 메뉴는 두 개의 추가 옵션이 있습니다로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) 

이 파일 메뉴와 메뉴를 추가합니다 받아쓰기 및 특수 문자를 시작합니다 (I를 정의하지 않았다.) 시작 받아쓰기가 음성 인식을 엽니 다. 특수 문자로 그림 이모티콘이 열립니다. 이 오류가 발생하기 때문에

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 
... 

내 메뉴에서 "특수 문자"항목을 제거하려면 어떻게해야합니까?

답변

0

메뉴에서 항목을 제거하는 방법을 찾지 못했지만 처음에는 메뉴에 표시하지 않는 방법이 있습니다.

"Edit" 메뉴를 호출하는 대신 "Edit " (끝에 공백이 있음)으로 지정하십시오.

은 별도의 항목을 추가하는 맥 OS를 중지하고 사용자에게 어떤 다른 보이지 않습니다

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)