2017-03-05 8 views
1

ファイル名はusercheck.txtで、各行に名前のリストがあるので、たとえばmyファイルは次のようになります。Tkinterのラベルテキストをテキストファイルから更新する

Kevin 
Bob 
Sally 
Ronnie 
O'sullivan 

誰かがTkinterプログラムを起動すると、その名前が自動的にリストに追加されます。終了すると、その名前が自動的にテキストファイルから削除されます。誰がオンラインになっているかをリアルタイムで更新するラベルを実装したいと思います。私のラベルを次のコードで更新しようとすると(これは私のコードではありませんが、私の問題が容易に再現できるほど似ています)、このエラーが発生します。ここで

Traceback (most recent call last): 
    File "C:\Users\Douglas Rouse\Google Drive\Python\throwaway.py", line 16, in <module> 
     upd() 
    File "C:\Users\Douglas Rouse\Google Drive\Python\throwaway.py", line 13, in upd 
     attempt.config(d) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1330, in configure 
     return self._configure('configure', cnf, kw) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1316, in _configure 
     cnf = _cnfmerge(cnf) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 100, in _cnfmerge 
     for c in _flatten(cnfs): 
TypeError: object of type 'builtin_function_or_method' has no len() 

私のコードは次のとおりです。

import tkinter as tk 

root = tk.Tk() 

f = open("usercheck.txt", "r").readlines() 
attempt = tk.Label(root, text="\n".join(f),bg = "#42f480") 
attempt.grid(row=0,column =5) 

def upd(): 
    d = open ("usercheck.txt","r").read 
    attempt.config(d) 

upd() 

編集 私は私が得る新しいエラーがある.read()

に括弧を忘れてしまったことを実現:

Traceback (most recent call last): 
    File "C:\Users\Douglas Rouse\Google Drive\Python\throwaway.py", line 13, in <module> 
     upd() 
    File "C:\Users\Douglas Rouse\Google Drive\Python\throwaway.py", line 11, in upd 
    attempt.config(d) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1330, in configure 
    return self._configure('configure', cnf, kw) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1320, in _configure 
    return self._getconfigure1(_flatten((self._w, cmd, '-'+cnf))) 
    File "C:\Users\Douglas Rouse\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1308, in _getconfigure1 
    x = self.tk.splitlist(self.tk.call(*args)) 
tkinter.TclError: unknown option 
"-Kevin 
Bob 
Sally 
Ronnie 
O'sullivan" 
+0

するために、この段落は、いくつかの句読点が必要です:「私は私がしようとすると、しかし、オンラインで誰が見ている次のコードで私のラベルを更新するために、リアルタイムで更新したラベルを実装したいです私のコードではありませんが、私の問題は容易に再現されるので、私はこのエラーになります。 – nbro

答えて

1

関数configは、幅、高さ、テキスト、フォントなどのウィジェットに関する何かを変更するために使用されるtkinterのさまざまなウィジェットに使用できます。ラベルのテキストを変更すると仮定しています。

変更attempt.config(d)

attempt.config(text = d)

関連する問題