簡體   English   中英

python按鈕組合以打開tkinter消息框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM