如何获取文本框文本输入并将其变为变量?

如何获取文本框文本输入并将其变为变量?

我在使用 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'

相关内容