![如何获取文本框文本输入并将其变为变量?](https://linux22.com/image/861770/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%96%87%E6%9C%AC%E6%A1%86%E6%96%87%E6%9C%AC%E8%BE%93%E5%85%A5%E5%B9%B6%E5%B0%86%E5%85%B6%E5%8F%98%E4%B8%BA%E5%8F%98%E9%87%8F%EF%BC%9F.png)
我在使用 Python 时遇到了一些问题,希望得到一些帮助。
我正在制作一个具有漂亮 UI 的恰当的 GUI‘前端’。
def on_textbox_changed(自身): self.instvar = self.installapps.get_text() def on_button1_clicked(自身,小部件): 打印“准备运行'sudo apt-get install(选定的包)” command2 = 'xterm -e sudo apt-get install ' 和 self.instvar cmd2 = 命令.getoutput(命令2)
您知道如何获取文本框条目并将其设为变量吗?我在网上查找了一下,然后想到了以下方法。每次我尝试这样做时,都会出现此错误:
回溯(最近一次调用最后一次): 文件“/home/rareshn/Documents/Zintori/Applets/aptfe/aptfe/AptfeWindow.py”,第 49 行,在 on_button1_clicked 中 command2 = 'xterm -e sudo apt-get install ' 和 self.instvar AttributeError:'AptfeWindow' 对象没有属性 'instvar'
如果你能帮助我,那将会很有帮助。谢谢!
答案1
self.instvar
您在设置之前单击了按钮。on_textbox_changed
处理程序可能从未被调用。启动 Glade 并选择您的文本条目。在右侧的属性编辑器中选择选项signals
卡并将GtkEditable
changed
信号连接到正确的处理程序。
您还应该在里面放置一个打印语句on_textbox_changed
来查看它是否真的被调用。
此外,这一行并没有按照你想象的那样做:
command2 = 'xterm -e sudo apt-get install ' and self.instvar
参见此互动环节:
>>> instvar = "firefox"
>>> "xterm -e sudo apt-get install" and instvar # Your code, wrong output
'firefox'
>>> "xterm -e sudo apt-get install %s" % instvar # Choose one of these
'xterm -e sudo apt-get install firefox'
>>> "xterm -e sudo apt-get install " + instvar
'xterm -e sudo apt-get install firefox'
>>> "xterm -e sudo apt-get install {}".format(instvar)
'xterm -e sudo apt-get install firefox'