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

时间:2016-03-22 21:09:36

标签: python tkinter pycharm python-idle

当在标准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()

现在按预期工作

1 个答案:

答案 0 :(得分:1)

Python有一个-i启动选项,导致Python在程序完成时进入交互式移动,而不是退出。 IDLE执行代码,就像在终端输入python -i file.py一样。这允许通过在Shell中输入代码来交互式地探索实时gui。

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