目标
我正在尝试编写一个基本文件,我可以将其导入所有其他程序中,这些程序将具有一个简单的功能,该功能将从用户输入然后返回它。
码
为此,我有以下代码:
class takeInput(object):
def __init__(self,requestMessage,parent):
self.string = ''
self.frame = Frame(parent)
self.frame.pack()
self.acceptInput(requestMessage)
def acceptInput(self,requestMessage):
r = self.frame
k = Label(r,text=requestMessage)
k.pack(side='left')
self.e = Entry(r,text='Name')
self.e.pack(side='left')
self.e.focus_set()
b = Button(r,text='okay',command=self.gettext)
b.pack(side='right')
def gettext(self):
self.string = self.e.get()
self.frame.destroy()
print self.string
def getString(self):
return self.string
def getText(requestMessage,parent):
global a
a = takeInput(requestMessage,parent)
return a.getString()
并且我还添加了一些脚本级别的代码来进行测试:
root = Tk()
getText('enter your name',root)
var = a.getString()
print var
root.mainloop()
而真正令我困惑的是:
var
没有我输入的值,它有一个空字符串 ''
a.string
变量具有我输入的值,并从外壳程序中进行了检查。还 当我试图从分配返回的字符串a.getString()
,以var
在shell,然后它的工作。
请注意, 我是Tkinter编程的新手,并不完全了解其mainloop()
工作原理。所以也许这就是问题所在。但我不确定。
眼镜
作业系统:Linux Mint 14
Python IDLE 2.7
请 帮我解决这个问题。
您的代码流如下所示:
getText
。getText
创建一个takeInput
对象a
。takeInput
对象初始化自身,创建标签及按钮等getText
返回a.getString()
,返回self.string
,其仍为默认值,即空字符串。var
,该值为空。到目前为止,所有这些都发生在几纳秒的时间范围内。用户甚至还没有看到窗口。
然后root.mainloop()
,主作用域调用,这最终为用户提供了与窗口进行交互的机会。但是为时已晚。var
已被打印。
如果您不希望getText
在用户提交文本之前不返回,则mainloop
必须在内getText
而不是之后进行。
from Tkinter import *
class takeInput(object):
def __init__(self,requestMessage):
self.root = Tk()
self.string = ''
self.frame = Frame(self.root)
self.frame.pack()
self.acceptInput(requestMessage)
def acceptInput(self,requestMessage):
r = self.frame
k = Label(r,text=requestMessage)
k.pack(side='left')
self.e = Entry(r,text='Name')
self.e.pack(side='left')
self.e.focus_set()
b = Button(r,text='okay',command=self.gettext)
b.pack(side='right')
def gettext(self):
self.string = self.e.get()
self.root.destroy()
def getString(self):
return self.string
def waitForInput(self):
self.root.mainloop()
def getText(requestMessage):
msgBox = takeInput(requestMessage)
#loop until the user makes a decision and the window is destroyed
msgBox.waitForInput()
return msgBox.getString()
var = getText('enter your name')
print "Var:", var
问题内容: 我不确定是否已经询问过此问题,但是我有多个输入框,其中包含默认文本。我不是要设置默认的文本,而是要在单击输入框时删除它。我希望能够在单击输入框后立即删除默认文本,因此用户不必这样做。我想知道是否有人可以分享一个有关如何完成此操作的快速示例,以便我可以实施。 到目前为止,我已经知道了,但是只删除了最后一个输入框文本。 问题答案: 假设您已整理好默认文本,则想在某个地方创建事件绑定,并使用
我在学KINTER我有点困惑。下面的代码显示了face_recogniton()函数中的白色文本。 但文本重叠了。在显示新文本之前,如何清除它?
我有以下问题。我用tkinter中的滚动条创建了一个框架。框架有一个标签,它从一个json文件中获取信息并加载到那里。代码如下: 问题是,当一个句子太长的时候,它就会出框,这很奇怪,因为我以为这些标签有一个自动系统来检测它什么时候出框。这里有一个例子: 程序从json文件中获取以下文本: 我做错了什么?提前道谢!
本文向大家介绍Python | Tkinter中的文本区域和按钮,包括了Python | Tkinter中的文本区域和按钮的使用技巧和注意事项,需要的朋友参考一下 库: Tkinter Tkinter(Tk interface)是一个标准python库,用于创建简单,快速和简单的GUI应用程序。 下载Tkinter: 在本教程中,我们将创建一个标签和文本区域,并从文本区域中提取文本,然后我们将看到
我有一个包含员工信息的文本文件。第一个单词是员工的姓氏,第二个单词是第一个名字。字符代码h或s告诉我他们是什么样的员工,有薪或小时。最后,字符代码后面的数字是小时工资(如果为小时工)或年薪(如果为受薪员工)。 我想对这些信息做的是扫描文本文件,根据识别的字符代码自动创建新的受薪员工对象或小时员工对象。 这些是小时雇员对象的参数。 这就是我想到的。 这段代码的问题是,我从in.nextDouble(
我在用python修改文本时遇到了问题,尽管我看到很多人在使用它 我的代码:
主要内容:基本属性,基本方法,Index文本索引,Tag文本标签,Mark文本标记Text 文本控件是 Tkinter 中经常使用的控件,与 Entry 控件相比,Text 控件用于显示和编辑多行文本,而 Entry 控件则适合处理单行文本。 Text 控件类似 HTML 中的 标签,允许用户以不同的样式、属性来显示和编辑文本,它可以包含纯文本或者格式化文本,同时支持嵌入图片、显示超链接以及带有 CSS 格式的 HTML 等。Text 控件的有很多的适用场景,比如显示某个产品的
可以输出文本。 用法 Your browser does not support the video tag. 案例:标签标签 功能:显示输入的字母。