0

は、私は私がロシアのTkinter英語から言語を切り替えるたびにはCtrl + CCtrlキー + VまたはCtrlキーを反応停止したことが判明しました + XPythonのTkinterは(他の言語で作業していないコピー/貼り付け)

テキストがロシア語であっても、英語に戻っても機能します。

self.bind('<Control-м>', self.paste)( "м"はロシア語では "v"と同じボタンです)のような元のコードに類似したものをコピーペーストのトピックに関連してリモートでスタック交換で見つけることができましたまだ何も動作しません。

本当にそれを修正するための助けやアイデアがありがとう。

+0

単なるハイテクを使用する必要があります。 Pythonアプリケーション内のショートカットキーに関連する、私はpyHookという名前のライブラリを使用しました。 (https://pypi.python.org/pypi/pyHook)。試してみてください。 – george

答えて

0

あなたはControl-мを押したときにkeycodeが使用されているかどうか確認するために<Key>を使用し、Tcl/Tk - keysymのようなページにkeysymを見つけるためにそれを使用することができます。たぶん、あなたは<Control-Cyrillic_em>

import tkinter as tk 

def copy(event): 
    print('copy') 

def paste(event): 
    print('paste') 

def test(event):  
    print('event.char:', event.char) 
    print('event.keycode:', event.keycode) 
    print('event.keysym:', event.keysym) 
    print('---') 

root = tk.Tk() 

root.bind('<Key>', test) 

root.bind('<Control-c>', copy) 
root.bind('<Control-v>', paste) 
root.bind('<Control-Cyrillic_em>', paste) 

root.mainloop() 
0

from Tkinter import Tk, Entry 

def _onKeyRelease(event): 
    ctrl = (event.state & 0x4) != 0 
    if event.keycode==88 and ctrl and event.keysym.lower() != "x": 
     event.widget.event_generate("<<Cut>>") 

    if event.keycode==86 and ctrl and event.keysym.lower() != "v": 
     event.widget.event_generate("<<Paste>>") 

    if event.keycode==67 and ctrl and event.keysym.lower() != "c": 
     event.widget.event_generate("<<Copy>>") 


master = Tk() 
master.geometry("500x500+1+1") 
master.bind_all("<Key>", _onKeyRelease, "+") 
Entry(master).pack() 
Entry(master).pack() 
Entry(master).pack() 
master.mainloop() 
関連する問題