Как я могу взять ввод текста текстового поля и сделать его переменной?

Я испытываю затруднения из-за Python и хотел бы иметь некоторую справку.

Я делаю способный GUI 'фронтендом' с хорошим UI.

    def on_textbox_changed(self):
        self.instvar = self.installapps.get_text()

    def on_button1_clicked(self, widget):
        print "Preparing to run 'sudo apt-get install (package selected)"
        command2 = 'xterm -e sudo apt-get install ' and self.instvar
        cmd2 = commands.getoutput(command2)

Вы знали бы, как взять запись текстового поля и сделать ее переменной? Я осмотрел сеть, и это - то, что я придумал. И каждый раз, когда я пробую это, это дает мне эту ошибку:

Traceback (most recent call last):
  File "/home/rareshn/Documents/Zintori/Applets/aptfe/aptfe/AptfeWindow.py", line 49, in on_button1_clicked
    command2 = 'xterm -e sudo apt-get install ' and self.instvar
AttributeError: 'AptfeWindow' object has no attribute 'instvar'

Если бы Вы могли бы помочь мне, который был бы полезен.Спасибо!

1
задан 11 September 2014 в 11:05

1 ответ

Вы нажимаете кнопку, прежде чем self.instvar будет установлен. on_textbox_changed обработчик, вероятно, никогда не называют. Поляна запуска и выбор Ваш ввод текста. В редакторе свойств на праве выбирают 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'
3
ответ дан 10 November 2019 в 19:22

Другие вопросы по тегам:

Похожие вопросы: