2016-03-22 13 views
0

標準のPythonアイドルプログラムでtkinterプログラムを実行すると、ウィンドウが表示され、それと対話できますが、pycharmで同じプログラムを実行すると、プログラムウィンドウが短時間点滅します閉じる。Pycharmが自動的にプログラムを終了する、python idle doesnt

私はメインループをどうするのを仮定している、あなたは私のコードからpycharm

でexcertを実行するときに自動的に閉じるからプログラムを防ぐために、あなたのコードに変更する何が必要なのか

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() 
を次の

更新:私のコードが新人(ルーキー)ではないことが原因で、ややこしいことがありましたが、私はそれをうまく動作させることができました。修正HERESに興味がある人々のために:HERE

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) 

.......上記のプログラムが設定されているものの大部分が、示さ MAIN CODE期待されるようになりました

root = Tk() 
gui = GUI(root) 
root.mainloop() 

作品

+0

あなたはここを見ていますか? http://stackoverflow.com/questions/27637197/tkinter-window-closes-automatically-after-python-program-has-run-in-pycharm – flyingmeatball

+0

私はしましたが、それは私のプログラムに関連しているとは思わなかった。鉱山にはデータ入力ボックスと検索ボタンなどがあるguiウィンドウがあります。私は間違っていると証明されています:) – LesM76

+0

それでは、あなたのイベントハンドラの後にroot.mainloop()を追加しましたか?結果は何でしたか? – flyingmeatball

答えて

1

Pythonには-i起動オプションがあり、終了する代わりにPythonが対話型移動に入るようにします。 IDLEは、端末にpython -i file.pyと入力したかのようにコードを実行します。これにより、シェルにコードを入力することで対話的にライブGUIを探索することができます。

この質問とflyingmeatballで参照されている質問から、PyCharmは-iを使用またはシミュレートしていないようです。ですから、root.mainloopでtkinterプログラムを完成させて何かを見なければなりません。アプリケーションを破壊することなくメインループを終了するためのボタンを追加しない限り、インタラクティブステートメントと対話することはできません。 (これはPyCharmの経験がないので、これはまったくSOに掲載されているものに完全に基づいています)