[英]python button combination to open a tkinter message box
我是topython 2.7的新用戶,想知道是否有可能使用像Windows錯誤消息那樣彈出的鍵盤上的按鈕組合(Ctrl + alt +'something')打開tkinter消息框。
import win32api
import time
import math
import Tkinter
import tkMessageBox
top = Tkinter.Tk()
def Message():
tkMessageBox.showinfo("Window", "Text")
for i in range(9000):
x = int(600+math.sin(math.pi*i/100)*500)
y = int(500+math.cos(i)*100)
win32api.SetCursorPos((x,y))
time.sleep(.01)
是的,您可以綁定到控制和alt字符。 綁定已被很好地記錄在案。 這是一個很好的信息來源:
http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
例如,要綁定到ctrl-alt-x,您可以這樣做:
top.bind("<Control-Alt-x>", Message)
您可以通過指定整個序列來綁定事件序列。 例如,如果您想實現作弊代碼,則可以執行以下操作:
label.bind("<c><h><e><a><t>", Message)
對於字母, "a"
與"<a>"
相同,因此您也可以這樣做:
label.bind("cheat", Message)
這是一個完整的工作示例:
import Tkinter as tk
import tkMessageBox
def Message(event=None):
tkMessageBox.showinfo("Window", "Text")
def Cheat(event=None):
tkMessageBox.showinfo("Window", "Cheat Enabled!")
root = tk.Tk()
label = tk.Label(root, text="Press control-alt-m to see the messagebox\ntype 'cheat' to enable cheat.")
label.pack(fill="both", expand=True, padx=10, pady=100)
label.bind("<Control-Alt-x>", Message)
label.bind("<c><h><e><a><t>", Cheat)
label.focus_set()
root.mainloop()
如果您想要以下內容:按下按鈕A,然后按下按鈕B,然后打開一個消息框,這是可能的。
做類似的事情:
from Tkinter import *
import tkMessageBox
def change():
global switch
switch=True
def new_window():
if switch:
tkMessageBox.showinfo("Random name", "Correct combination")
else:
print "Not the correct order"
root = Tk()
switch = False
root.bind("<A>", change)
root.bind("<B>",new_window)
root.mainloop()
如果您想要更多的按鈕,則使用整數並在使用正確按鈕順序的開關時增加它。
請注意,例如,您也可以使用root.bind("<Shift-E>")
綁定鍵組合。
編輯:現在a和b鍵盤按鈕由tkinter按鈕安裝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.