我已经尝试过notepad ++和eclipse但是即便如此,它在第18行显示了缩进错误。我不知道,为什么它会给我一个错误......?请帮帮我。
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 :(得分:13)
在这种情况下,使用-t
标志运行python通常是个好主意:
-t:发出有关标签使用不一致的警告(-tt:发生错误)
这有助于查找因意外使用的标签引起的缩进问题。
答案 1 :(得分:7)
行
self.verticalLayout.addWidget(self.lineEdit)
应与其他行处于同一级别。
您可能会错过它,因为您的编辑器会混合制表符和空格。
如果您在自己的问题中单击“编辑”,则会看到此行未正确缩进。
答案 2 :(得分: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()
答案 3 :(得分:3)
看起来你正在使用错误的单引号。您需要使用'
,而不是’
。
不确定这是不是你的问题。