Как я могу взять текстовое поле ввода текста и сделать его переменной?
У меня проблемы с Python, и я хотел бы получить некоторую помощь.
Я делаю подходящую GUI-интерфейс с хорошим интерфейсом.
def on_textbox_changed (self): self.instvar = self.installapps.get_text () def on_button1_clicked (self, widget): print "Подготовка к запуску 'sudo apt-get install (пакет выбран)" command2 = 'xterm -e sudo apt-get install ' и self.instvar cmd2 = commands.getoutput(command2)
Знаете ли вы, как взять запись в текстовом поле и сделать ее переменной? Я посмотрел в Интернете, и это то, что я придумал. И каждый раз, когда я пытаюсь это, это дает мне эту ошибку:
Traceback (последний вызов был последним): Файл "/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
чтобы увидеть, если это действительно называется.
Alse, эта строка не делает то, что вы думаете:
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'