当在标准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()
现在按预期工作
答案 0 :(得分:1)
Python有一个-i
启动选项,导致Python在程序完成时进入交互式移动,而不是退出。 IDLE执行代码,就像在终端输入python -i file.py
一样。这允许通过在Shell中输入代码来交互式地探索实时gui。
从这个问题和flyingmeatball引用的问题看来,PyCharm似乎没有使用或模拟-i
。因此,必须使用root.mainloop完成一个tkinter程序才能看到任何内容。除非在不破坏应用程序的情况下添加一个按钮来退出mainloop,否则将无法与交互式语句进行交互。 (同样,这完全基于SO上发布的内容,因为我没有PyCharm的经验。)