让tkinter在创建的窗口中显示输出,而不是在我的bash终端中

2024-09-24 08:34:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我第一次修补tkinter。我从Geeksforgeks.org上得到了这个(稍作修改)

当我跑步时:

pedro@pedro-512ssd:~/myPython/tkinter$ ./newWindow_display_textv5.py

在bash中,我看到了我的窗口,但输出“key was pressed”显示在bash中,而不是我闪亮的新窗口中

是否可以使输出显示在我的新窗口中

#! /usr/bin/python3
# Import all files from 
# tkinter and overwrite 
# all the tkinter files 
# by tkinter.ttk
import tkinter
from tkinter import *
from tkinter.ttk import *

def myWindow2():
    window = tkinter.Tk()
    window.title("A New Window")
    window.config(bg='light blue')
    window.geometry('640x480')
    
    # function to be called when 
    # keyboard buttons are pressed 
    def key_press(event): 
        key = event.char 
        print(key, 'was pressed') 
      
          
    # here we are binding keyboard 
    # with the main window 
    window.bind('<Key>', lambda a : key_press(a)) 
      
    mainloop()
    
myWindow2()

Tags: thekeyfromimportbashtkinterdeffiles
2条回答

您需要在窗口上设置标签。 例如someLabel = Label( window, text='set Text here' ) 还有其他用于定位所述标签的命令

您始终可以这样做:

from tkinter import Tk, Canvas

def func(event):
      c.create_text(0, 0, text="Pressed key {}".format(event.char)) #0, 0 are coordinates (0, 0 is top left)

window = Tk()
window.title("some tkinter window")
window.geometry("640x480")
c = Canvas(window, width=640, height=480)
c.pack()
window.bind("<Key>", func)
window.mainloop()

这对我来说很好

编辑:

这样做

from tkinter import Tk, Canvas
text = c.create_text(0, 0, text="", anchor="nw")
def func(event):
       c.itemconfig(text, text="Pressed key {}".format(event.char))

window = Tk()
window.title("some tkinter window")
window.geometry("640x480")
c = Canvas(window, width=640, height=480)
c.pack()
window.bind("<Key>", func)
window.mainloop()

相关问题 更多 >