我正在快速运行 12.80.1-0ubuntu2,出于某种原因,我生成的应用程序不再识别按钮点击。几周前,我使用 ubuntu-application 模板创建了一个应用程序,该模板有多个按钮,引用了子进程函数。今天我尝试创建一个相同的应用程序,但它不起作用。没有调试输出或任何东西,源代码完全相同。
在 glade 中有一个名为 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)
终端中也没有显示“未选择”消息,这让我认为它根本无法识别按钮。我很确定这是一个错误,因为我已经在多台计算机上尝试过,创建了一个新项目,所有结果都相同。这个源代码上周还可以用,但现在不行了,所以我很确定这没什么问题。
答案1
def on_button1_clicked(self, widget):
print "No Selected"
subprocess.call('no-tour', shell=True)
此代码的缩进存在问题。def 行必须与 def finish_initializing 位于同一行。