2016-01-12 44 views
0

我試圖做一個程序,將有Tkinter的蟒蛇3.5大多項,但我不能讓文本保存爲一個變量: 我曾嘗試:文本的Tkinter不工作

from tkinter import * 
from tkinter.scrolledtext import ScrolledText 
root = Tk() 
var = StringVar() 
def go(): 
    print(var.get()) 
big_entry = ScrolledText(root, textvariable=var).pack() 
button = Button(root, text='PRINT', command=go).pack() 
root.mainloop() 

但這似乎沒有工作,它告訴我,「textvariable」是未知選項,您可以請幫我,但是記住,我只有13和是比較新的編碼,從而讓您的answeres簡單

+0

找到相應的文檔,並檢查'ScrolledText'選項。 – furas

+0

btw:'pack()'返回'None',所以你將'None'分配給'big_entry'和'button' – furas

回答

0

ScrolledText不使用文本變量。

你必須使用insert()get()

import tkinter as tk 
from tkinter.scrolledtext import ScrolledText 

# --- functions --- 

def go(): 
    print(st.get(0.0, tk.END)) 

# --- main --- 

root = tk.Tk() 

st = ScrolledText(root) 
st.pack() 
st.insert(0.0, 'Hello World!') 

btn = tk.Button(root, text='PRINT', command=go) 
btn.pack() 

root.mainloop() 
+0

有沒有辦法做到這一點,而不是導入tkinter作爲tk,但通過從tkinter導入*做? – dkelaty

+0

是的,你可以。做到這一點。 (我更喜歡'import tkinter as tk',因爲我可以看到哪些元素屬於tkinter模塊) – furas

0

你應該鍵入以下內容:

from tkinter import * 
root = Tk() 

from tkinter.scrolledtext import ScrolledText 

def go(): 
    print(text.get(0.0, END)) #you need to get the current value from line 0 letter 0 to the end 

text = ScrolledText(root) 
text.pack() 

btn = Button(root, text='GO', command=go) 
btn.pack() 

root.mainloop()