[英]Tkinter window closes automatically after Python program has run in PyCharm
[英]Pycharm automatically closes a program, python idle doesnt
在标准python空闲程序中运行tkinter程序时,将显示该窗口,并且您可以与其进行交互,但是在pycharm中运行同一程序会导致程序窗口短暂闪烁然后关闭。
我假设它与mainloop有关,您需要在代码中进行哪些修改,以防止在pycharm中运行时程序自动关闭
我的代码中的专家
from tkinter import *
import tkinter
from tkinter import Text, Tk, ttk
import csv
from csv import DictReader
import sys
import os
class GUI:
def __init__(self, root):
....
def main():
global label
root = Tk()
root.title(" My program")
root.geometry("550x330+600+300")
mycolor = '#%02x%02x%02x' % (39, 39, 39) # background color
root.configure(bg=mycolor)
gui = GUI(root)
main()
更新:经过一番摸索,部分是由于我的代码不是最好的(菜鸟),我设法使其工作。 对于任何有兴趣的人,这里的修改:
from tkinter import *
import csv
from csv import DictReader
import sys
import os
class GUI:
def __init__(self, master):
self.master = master
master.title(" My Programs")
master.geometry("550x330+600+300")
master.iconbitmap('logo.ico')
mycolor = '#%02x%02x%02x' % (39, 39, 39) # background color
master.configure(bg=mycolor)
.......以上大部分是程序设置的内容,但此处显示了主要代码
root = Tk()
gui = GUI(root)
root.mainloop()
现在可以正常工作
Python具有-i
启动选项,该选项使Python在程序完成时进入交互式移动而不是退出。 IDLE执行代码就像在终端上输入python -i file.py
。 这样,通过在Shell中输入代码,人们就可以交互式地浏览实时gui。
从这个问题以及flyingmeatball引用的问题来看,PyCharm似乎没有使用或模拟-i
。 因此,必须使用root.mainloop完成tkinter程序才能看到任何内容。 除非添加一个按钮以退出主循环而不破坏应用程序,否则一个人将无法与交互式语句进行交互。 (再次,这完全基于SO上发布的内容,因为我没有使用PyCharm的经验。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.