2011-02-02 85 views
3

我试过记事本++和eclipse,但即使如此,它显示了第18行的缩进错误。我不知道,为什么它会抛出像这样的错误...?请帮帮我。Python缩进错误:

from brisa.core.reactors.qtreactor import QtReactor 
reactor = QtReactor() 
from brisa.core import config 
from brisa.upnp.device import Device 
from brisa.upnp.device.service import Service, StateVariable 
class QtDevice(QtGui.QWidget): 
    def __init__(self): 

     QtGui.QWidget.__init__(self) 
     self.verticalLayout = QtGui.QVBoxLayout(self) 
     self.title = QtGui.QLabel("Qt Simple Device") 
     font = QtGui.QFont() 
     font.setPointSize(15) 
     self.title.setFont(font) 
     self.title.setAlignment(QtCore.Qt.AlignCenter) 
     self.verticalLayout.addWidget(self.title) 
     self.lineEdit = QtGui.QLineEdit(self) 
     self.verticalLayout.addWidget(self.lineEdit) 
     self.search_btn = QtGui.QPushButton("Start Device", self) 
     self.verticalLayout.addWidget(self.search_btn) 
     QtCore.QObject.connect(self.search_btn, QtCore.SIGNAL("clicked()"), self.start) 
     self.stop_btn = QtGui.QPushButton("Stop Device", self) 
     self.verticalLayout.addWidget(self.stop_btn) 
     QtCore.QObject.connect(self.stop_btn, QtCore.SIGNAL("clicked()"), self.stop) 
     self.lineEdit.setText(’My Generic Device Name’) 
     self.root_device = None 
     self.upnp_urn = ’urn:schemas-upnp-org:device:MyDevice:1’ 


    def _add_root_device(self): 
     project_page = ’http://brisa.garage.maemo.org’ 
     serial_no = config.manager.brisa_version.replace(’.’, ’’).rjust(7, ’0’) 
     self.root_device = Device(self.upnp_urn,str(self.lineEdit.text()), 
            manufacturer=’’, 
            manufacturer_url=, 
            model_description=’ ’ 

            model_name=’’, 
            model_number=, 
            model_url=, 
            serial_number=) 


    def _add_services(self): 
     service_name = ’MyService’ 
     service_type = ’urn:schemas-upnp-org:service:MyService:1’ 
     myservice = Service(service_name, service_type, ’’) 
     var = StateVariable(self, "A_ARG_TYPE_Variable",True, False, "string") 
     myservice.add_state_variable(var) 
     self.root_device.add_service(myservice) 

    def _load(self): 
     self._add_root_device() 
     self._add_services() 
     def start(self): 
     self.stop() 
     self._load() 
     self.root_device.start() 
     reactor.add_after_stop_func(self.root_device.stop) 

    def stop(self): 
     if self.root_device: 
      self.root_device.stop() 
      self.root_device = None 

def main(): 
    qt_dev = QtDevice() 
    qt_dev.show() 
    reactor.main() 
if __name__ == ’__main__’: 
    main()   
+0

如何告诉我们第18行是什么,并告诉我们错误消息 – Falmarri 2011-02-02 18:35:54

+1

这些时髦的单引号来自哪里?如果他们在源代码中,他们会触发语法错误。另外,`_add_root_device`中长的`Device(...)`有几个错误:缺少逗号和大多数关键字参数缺少值。 – delnan 2011-02-02 18:38:04

+0

@ user597293:调试的第一步是假定警告是准确的。在缩进错误的情况下,简单地删除所有前导缩进并重新插入你认为合适的缩进是非常简单的。 – 2011-02-02 18:41:18

回答

5

这是你的报价,例如上线:

self.lineEdit.setText(’My Generic Device Name’) 

试试这个:

from brisa.core.reactors.qtreactor import QtReactor 
reactor = QtReactor() 
from brisa.core import config 
from brisa.upnp.device import Device 
from brisa.upnp.device.service import Service, StateVariable 
class QtDevice(QtGui.QWidget): 
    def __init__(self): 

     QtGui.QWidget.__init__(self) 
     self.verticalLayout = QtGui.QVBoxLayout(self) 
     self.title = QtGui.QLabel("Qt Simple Device") 
     font = QtGui.QFont() 
     font.setPointSize(15) 
     self.title.setFont(font) 
     self.title.setAlignment(QtCore.Qt.AlignCenter) 
     self.verticalLayout.addWidget(self.title) 
     self.lineEdit = QtGui.QLineEdit(self) 
     self.verticalLayout.addWidget(self.lineEdit) 
     self.search_btn = QtGui.QPushButton("Start Device", self) 
     self.verticalLayout.addWidget(self.search_btn) 
     QtCore.QObject.connect(self.search_btn, QtCore.SIGNAL("clicked()"), self.start) 
     self.stop_btn = QtGui.QPushButton("Stop Device", self) 
     self.verticalLayout.addWidget(self.stop_btn) 
     QtCore.QObject.connect(self.stop_btn, QtCore.SIGNAL("clicked()"), self.stop) 
     self.lineEdit.setText('My Generic Device Name') 
     self.root_device = None 
     self.upnp_urn = 'urn:schemas-upnp-org:device:MyDevice:1' 


    def _add_root_device(self): 
     project_page = 'http://brisa.garage.maemo.org' 
     serial_no = config.manager.brisa_version.replace('.', '').rjust(7, '0') 
     self.root_device = Device(self.upnp_urn,str(self.lineEdit.text()), 
            manufacturer='', 
            manufacturer_url=, 
            model_description=' ' 

            model_name='', 
            model_number=, 
            model_url=, 
            serial_number=) 


    def _add_services(self): 
     service_name = 'MyService' 
     service_type = 'urn:schemas-upnp-org:service:MyService:1' 
     myservice = Service(service_name, service_type, '') 
     var = StateVariable(self, "A_ARG_TYPE_Variable",True, False, "string") 
     myservice.add_state_variable(var) 
     self.root_device.add_service(myservice) 

    def _load(self): 
     self._add_root_device() 
     self._add_services() 
     def start(self): 
     self.stop() 
     self._load() 
     self.root_device.start() 
     reactor.add_after_stop_func(self.root_device.stop) 

    def stop(self): 
     if self.root_device: 
      self.root_device.stop() 
      self.root_device = None 

def main(): 
    qt_dev = QtDevice() 
    qt_dev.show() 
    reactor.main() 
if __name__ == '__main__': 
    main() 
7

 self.verticalLayout.addWidget(self.lineEdit) 

应该在其他行的同一水平。

您可能会错过它,因为您的编辑器混合了制表符和空格。

如果您在自己的问题中点击“编辑”,您会看到该行没有正确缩进。

+1

如果您在自己的问题中单击“编辑”,您会看到该行没有正确缩进。 – 2011-02-02 18:36:47

3

看起来您正在使用错误的单引号标记。您需要使用',而不是

不知道这是不是你的问题。

13

在这种情况下,通常是运行与-t标志蟒蛇是一个好主意:

-t : issue warnings about inconsistent tab usage (-tt: issue errors)

这将有助于查找意外使用的选项卡导致的缩进问题。