新手问题,但我正在制作一个带GUI的非常基本的程序。它需要法语单词并将它们翻译成英语(有点)
from tkinter import *
import webbrowser
def show_entry_fields():
website = "www.wordreference.com/fren/%s" % (e1.get())
webbrowser.open(website)
master = Tk()
Label(master, text="French Word").grid(row=0)
e1 = Entry(master)
e1.grid(row=0, column=1)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
mainloop( )
问题是,如果我输入多个单词,它会打开
www.wordreference.com/fren/Bonjour%20Avoir
我试过了
e1 = [Entry(master)]
但这会给我带来错误,
也是如此e1 = Entry[(master)]
答案 0 :(得分:3)
您需要更改if (e.RowType != GridViewRowType.Data) return;
var securrityKey = e.GetValue("str_securitykey");
System.Web.UI.WebControls.HyperLink grdHyper =
grid.FindRowCellTemplateControl(e.VisibleIndex, null, "grdhyper")
as System.Web.UI.WebControls.HyperLink;
if (securrityKey.ToString() != "")
{
grdHyper.Visible = false;
}
else
{
var number = e.GetValue("lng_rndnum");
var lngId = e.GetValue("lng_id");
grdHyper.CssClass = "example6 cboxElement";
grdHyper.NavigateUrl = "GenerateSecurityKey.aspx?number=" + number.ToString() + "&id=" + lngId.ToString();
}
并使用show_entry_fields
的{{3}}:
str
如果您希望单词由空格以外的其他内容分隔,则需要将分隔符传递给def show_entry_fields():
# assuming the words are separated by one or more spaces
word_list = e1.get().split() # break the content of e1 into a list of words
for word in word_list:
website = "www.wordreference.com/fren/%s" % word
webbrowser.open(website)
。例如,如果单词之间用逗号分隔后跟空格(如split
),则'hello, world, bye'
调用应为split
。
至于您获得的错误,word_list = e1.get().split(', ')
使e1 = [Entry(master)]
成为一个列表,其中没有e1
方法。因此,当您致电get()
时,您会收到AttributeError
。 show_entry_fields
不会创建e1 = Entry[(master)]
实例,而是尝试索引到Entry
(类),这不是您可以索引的内容。所以这应该立即引发Entry
。