2017-07-25 13 views
6

で働いていない、と私はCMD + (またはすべてのコマンドを選択します)が有効になっていないことに気づきました。CMD +は、私はTkinterのを使用して、基本的なUIを構築されてきたTkinterのエントリ

tkinterのすべてのショートカットを特に入力テキストフィールドで有効にする方法を教えてください。

これは私のコードです:

entry1 = ttk.Entry(root, width = 60) 
entry1.pack() 

答えて

3

@Goyoはもうあなたの質問に答えました。私は、Entryウィジェットのテキストのテキストを選択し、それ以外の何もしないことに興味がないので、投稿を共有したいと思います。だから私はどのようにあなたがそれを削除するかb)a)のいずれかを使用する予定であることを示す汚れたMCVEを提供するつもりですあなたはそれをコピーします。 A)、次の関数は、仕事をするについては

def select_text_or_select_and_copy_text(e): 
    e.widget.select_range(0, 'end') 

それはあなたがエントリウィジェットに関数の名前が記載された対応するイベントの結合条件の下で動作します:

entry.bind('<Control-a>', select_text_or_select_and_copy_text) 
entry.bind('<Control-c>', select_text_or_select_and_copy_text) 

Bに対しては、この機能を使用することができます0

とエントリウィジェットにDeleteイベントバインド:私はUbuntuのにこのMCVEを試してみました

entry.bind('<Delete>', delete_text) 

をし、それが動作します:むしろ

import tkinter as tk 
import tkinter.ttk as ttk 


def select_text_or_select_and_copy_text(e): 
    e.widget.select_range(0, 'end')  

def delete_text(e): 
    e.widget.delete('0', 'end') 


root = tk.Tk() 

entry = ttk.Entry(root) 
entry.pack() 

entry.bind('<Control-a>', select_text_or_select_and_copy_text) 
entry.bind('<Control-c>', select_text_or_select_and_copy_text) 
entry.bind('<Delete>', delete_text) 

root.mainloop() 
7

Tkinterのはあなたがキーボードイベントを結合することによって、独自に定義することができますしたいshorcutsを定義していない場合。

import tkinter as tk 
import tkinter.ttk as ttk 

def callback(ev): 
    ev.widget.select_range(0, 'end') 

root = tk.Tk() 
entry = ttk.Entry(root) 
entry.pack() 
entry.bind('<Command-a>', callback) 
root.mainloop() 

私はCommandはCMDキーの正しい接頭辞であると思いますが、私はテストするためのMacを持っていません。ウィンドウでは、コントロールキーにバインドされます。

+0

''(Ubuntuの上でテスト) –

+2

@ BillalBEGUERADJ私はcmd + aがMac用であると推測しています。 ''と ''はWindowsでも同じように動作するようですが、Macではどのように動作するのか分かりません。 interwebsにあるアドバイスは、「」を使用することを示唆しています。 – Goyo

+0

あなたは正しいです、それは事実かもしれません。 –

関連する問題