2016-05-26 10 views
0

私はこの機能を持っており、そのためのインターフェースを構築する必要があります。 これは、ログファイル内の一部のデータを検索する関数です。 このデータはLabelに印刷する必要があります。 1.データ(int)はユーザ入力である必要があります。 2.ユーザー入力の値はログファイル で検索されます。3.ログの結果はラベルに出力する必要があります。tkinterボタンの機能アクションとラベルの結果

ありがとうございます。 ここは新しいです!だから皆におはよう。

Namaste! This is the progress- コード下記参照してください。

def searcher(): 
     imei = input("Insert imei: ") 
     log = reversed(list(open("C:/test.log"))) 

     if len(imei) == 15: 
      for line in log: 
       if imei in line: 
        if ("[S/W Upgrade]") in line: 
         print (line,"S/W upgrade found in LOG- OK to close the JOB") 
        elif ("SVC Connection") in line: 
         print(" SVC connexion only FOUND! Please connect device again for S/W Upgrade!") 
        else: 
         print(line,"FAIL") 
        break 
      else: 
       print("IMEI not found in LOG FILE - please connect device to FENRIR for S/W upgrade") 
     else: 
      print("Wrong IMEI number- please check your input!") 

     return() 

    searcher() 


Please see below my progress: 

import tkinter as tk 


class ImeiApp(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 
     self.entry = tk.Entry(self) 
     self.button = tk.Button(self, text="Check IMEI", command=self.on_button) 
     self.button.pack() 
     self.entry.pack() 

    def on_button(self): 
     self.button = tk.Button(self,command=searcher) 
def searcher(): 
    global line 
    global searcher 
    imei = tk.Entry 
    log = reversed(list(open('C:/test.log','r'))) 
    if len(imei) == 15: 
     for line in log: 
      if imei in line: 
       if ("[S/W Upgrade]") in line: 
        print (line,"S/W upgrade found in LOG- OK to close the JOB") 
       elif ("SVC Connection") in line: 
        print(" SVC connexion only FOUND! Please connect device again for S/W Upgrade!") 
       else: 
        print(line,"FAIL") 
       break 
     else: 
      print("IMEI not found in LOG FILE - please connect device to FENRIR for S/W upgrade") 
    else: 
     print("Wrong IMEI number- please check your input!") 

    return() 

app = ImeiApp() 
app.mainloop() 
self.button.pack() 
self.entry.pack() 
+0

Stackoverflowはコード作成サービスではありません。特定の問題がありますか?あなたはtkinterチュートリアルで作業しましたか? –

+0

また、あなたの質問のタイトルにも詳しく記述してください。 "Python 3 tkinter"は残念なことに、あなたに必要なものや、あなたの質問に最も良く答える方法をコミュニティに教えてくれません。 –

+0

私はちょうど私の進歩を追加しました。私はボタンと入力ウィンドウを持っていますが、ラベルとボタンアクションがありません(ボタンが押されても関数はトリガーされません) –

答えて

0

あなたの主な問題は、あなたが期待どおりにボタンがあなたのsearcher機能を実行していないということのようです。

あなたのボタンのコードは次のようになります。

self.button = tk.Button(self, text="Check IMEI", command=self.on_button) 

は、実行するはずの機能は、このですが:ボタンを押すことで、新しいボタンを作成することを意味

def on_button(self): 
    self.button = tk.Button(self.root,command=searcher) 

別のコマンド(searcher)を使用して、元のボタンに割り当てます。これは初めてボタンをクリックしたときに発生します。それをもう一度クリックすると、 "new"ボタンは存在しないsearcher関数を探します - クラスのスコープ外です。

私のソリューションは、

  • あなたImeiAppクラスのsearcher機能
  • 私達は行くここにあなたのボタン

ためのコマンドとしてself.searcherを割り当てる

  • 完全on_button機能をドロップを含めることです:

    クラスの__init__関数にいくつか変更を加えたことに注目してください。メインウィンドウとしてクラス自体を使用する代わりに、メインウィンドウのrootを生成し、そこにボタンと入力ウィジェットを配置しました。

    一般的なコードについて:コメントにjcfollowerが指摘されているので、effbot's introduction to tkinterと、おそらくPython docs on Tkinterをチェックして、tkinterの使用方法の詳細を確認する必要があります。

  • 関連する問題