Python tkinter 按钮 lagging/printing 退出时
Python tkinter button lagging/printing upon exit
首先请注意,我在 Enthought/Canopy 中进行了所有这些操作。
我有这个基本的 GUI,它有 4 个输入框,您可以在其中输入内容,然后点击一个按钮,它会打印您输入的内容。但是,它没有按照我想要的方式运行。当您启动代码并输入值并按下按钮时,它不会执行任何操作,然后您关闭 gui window 它将打印您输入的值。
此外,当您输入值并按下按钮一次时,它不会再执行任何操作,但如果您再次按下按钮,它会打印值,但不是预期的那样。假设您输入了 1, 2, 3, 4 并按下按钮两次,您在屏幕上看到的是 1, 2, 3, 4, 1 当您现在关闭 window 时,它会打印出休息。
如果你们能帮我解决这个问题,我将不胜感激。先感谢您。下面是我的代码:
更新:这个问题不会发生在 IDLE 上,只会发生在 Canopy 上。
from Tkinter import *
class Application:
def printcmd(self):
print(self.entrybox.get())
def __init__(self, master):
self.entrybox = Entry(master)
self.button = Button(master, text="print", command = self.printcmd)
self.entrybox.grid()
self.button.grid()
root = Tk()
Application(root)
root.mainloop()
如果您在 Canopy GUI 中执行此操作,则应确保 Qt 尚未设置为 GUI 后端。参见 https://support.enthought.com/hc/en-us/articles/204469880-Using-Tkinter-Turtle-or-Pyglet-in-Canopy-s-IPython-panel
对于打印延迟:Python 缓冲其输出。如果要确保立即打印某些输出,请在带有 sys.stdout.flush()
的打印语句后刷新打印输出缓冲区。 (当然要先import sys
。)
这可能是任何 Python 程序中的问题。它在 Canopy 中比在 IDLE 中出现得更频繁,因为 Canopy 使用 IPython 的 QtConsole 将执行内核与前端类似终端的面板分成两个单独的 OS 进程。
首先请注意,我在 Enthought/Canopy 中进行了所有这些操作。
我有这个基本的 GUI,它有 4 个输入框,您可以在其中输入内容,然后点击一个按钮,它会打印您输入的内容。但是,它没有按照我想要的方式运行。当您启动代码并输入值并按下按钮时,它不会执行任何操作,然后您关闭 gui window 它将打印您输入的值。
此外,当您输入值并按下按钮一次时,它不会再执行任何操作,但如果您再次按下按钮,它会打印值,但不是预期的那样。假设您输入了 1, 2, 3, 4 并按下按钮两次,您在屏幕上看到的是 1, 2, 3, 4, 1 当您现在关闭 window 时,它会打印出休息。
如果你们能帮我解决这个问题,我将不胜感激。先感谢您。下面是我的代码:
更新:这个问题不会发生在 IDLE 上,只会发生在 Canopy 上。
from Tkinter import *
class Application:
def printcmd(self):
print(self.entrybox.get())
def __init__(self, master):
self.entrybox = Entry(master)
self.button = Button(master, text="print", command = self.printcmd)
self.entrybox.grid()
self.button.grid()
root = Tk()
Application(root)
root.mainloop()
如果您在 Canopy GUI 中执行此操作,则应确保 Qt 尚未设置为 GUI 后端。参见 https://support.enthought.com/hc/en-us/articles/204469880-Using-Tkinter-Turtle-or-Pyglet-in-Canopy-s-IPython-panel
对于打印延迟:Python 缓冲其输出。如果要确保立即打印某些输出,请在带有 sys.stdout.flush()
的打印语句后刷新打印输出缓冲区。 (当然要先import sys
。)
这可能是任何 Python 程序中的问题。它在 Canopy 中比在 IDLE 中出现得更频繁,因为 Canopy 使用 IPython 的 QtConsole 将执行内核与前端类似终端的面板分成两个单独的 OS 进程。