繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM