Pycharm 自动关闭一个程序,python idle 不会

Pycharm automatically closes a program, python idle doesnt

当 运行 标准 python 空闲程序中的 tkinter 程序时 window 显示并且您可以与其交互,但 运行 中的相同程序pycharm 使程序 window 短暂闪烁然后关闭。

我假设它与主循环有关,您需要在代码中修改什么以防止程序在 运行 in 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.

中输入代码来交互式地探索实时图形用户界面

从这个问题和 flyingmeatball 引用的问题来看,PyCharm 似乎没有使用或模拟 -i。所以必须用 root.mainloop 完成一个 tkinter 程序才能看到任何东西。除非在不破坏应用程序的情况下添加一个按钮来退出主循环,否则将无法与交互式语句进行交互。 (同样,这完全基于 SO 上发布的内容,因为我没有使用 PyCharm 的经验。)