Я быстро запускаю 12.80.1-0ubuntu2 и по какой-то причине генерируемые мной приложения больше не распознают нажатия кнопок. Несколько недель назад я создал приложение с использованием шаблона ubuntu-application с несколькими кнопками, которые ссылались на функцию подпроцесса. Я пытался создать идентичное приложение сегодня, и оно не будет работать. Нет никакого отладочного вывода или чего-либо еще, и исходный код точно такой же.
На поляне есть кнопка с именем button1, и это мой исходный код Window.py
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
### BEGIN LICENSE
# This file is in the public domain
### END LICENSE
from locale import gettext as _
from gi.repository import Gtk # pylint: disable=E0611
import logging
import subprocess
logger = logging.getLogger('apppool')
from apppool_lib import Window
from apppool.AboutApppoolDialog import AboutApppoolDialog
from apppool.PreferencesApppoolDialog import PreferencesApppoolDialog
# See apppool_lib.Window.py for more details about how this class works
class ApppoolWindow(Window):
__gtype_name__ = "ApppoolWindow"
def finish_initializing(self, builder): # pylint: disable=E1002
"""Set up the main window"""
super(ApppoolWindow, self).finish_initializing(builder)
self.AboutDialog = AboutApppoolDialog
self.PreferencesDialog = PreferencesApppoolDialog
self.button1 = self.builder.get_object("button1")
# Code for other initialization actions should be added here.
def on_button1_clicked(self, widget):
print "No Selected"
subprocess.call('no-tour', shell=True)
Сообщение «Не выбрано» не появляется в терминале, что заставляет меня думать, что это не так. распознавание кнопок вообще. Я уверен, что это ошибка, поскольку я пробовал ее на нескольких компьютерах, создал новый проект с одинаковыми результатами. Этот исходный код работал на прошлой неделе, но не сейчас, поэтому я почти уверен, что с этим все в порядке.
def on_button1_clicked(self, widget):
print "No Selected"
subprocess.call('no-tour', shell=True)
была проблема с добавлением отступа с этим кодом. Строка определения должна была быть в той же строке как определение finish_initializing.