我试图创建一个简单的GUI,用户输入一些文本,我加粗某些单词。我正在使用图形库,但是我的a getting a'str'对象没有属性'draw'。而且窗户几乎瞬间关闭。在
from graphics import *
win = GraphWin("Hangman", 600, 600)
win.setBackground("yellow")
textEntry = Entry(Point(233,200),50)
textEntry.draw(win)
# click the mouse to signal done entering text
win.getMouse()
text = textEntry.getText()
testText = Text(Point(150,15), text)
testText.draw(win)
finalOut = ""
outtxt = text
outtxtSplit = outtxt.split()
for word in outtxtSplit:
if word == "bold":
finalOut = finalOut + word.setStyle("bold")
else:
finalOut = finalOut + word
outtxt.draw(win)
exitText = Text(Point(200,50), outtxt)
exitText.draw(win)
win.getMouse()
win.close()
除了在answer和comment中指出的
Point()
参数,Text()
之外,这一行根本行不通:因为}是Python
finalOut
和{str
实例和图形.pysetStyle("bold")
方法应用于Text()
对象。在修复这个问题,而不是删除这个特性,可能很棘手,因为您需要收集一个普通和粗体
Text()
实例的列表,并以适当的间距将它们绘制成一个水平行。图形.py不会有太大的帮助,因为我没有看到任何方法来获得格式化文本宽度。似乎样式是整个文本消息的全部或全部,而不是它的单个元素。在你的
outtxt = text
应该是
在您的代码中,
outtxt
是text
text本身,因此它没有称为draw()
的方法相关问题 更多 >
编程相关推荐