Python Twisted sendLine () - PullRequest
       4

Python Twisted sendLine ()

1 голос
/ 04 декабря 2010

Нет, не ты снова.

Ну, во всяком случае, я боролся с этим в течение достаточно долгого времени. Так что в основном у меня есть твое приложение, и сейчас я пишу для него интерфейс PyQt. Есть только одна вещь, которую я пока не смог соединить между скриптом Twisted и новым интерфейсом. В этот момент при нажатии кнопки вызывайте Twisted для отправки данных через функцию sendLine ().

Мы не можем использовать.

QtCore.QObject.connect(self.pushButton_7, QtCore.SIGNAL("clicked()"),
           Twisted().Button_Clicked('abc'))


class Twisted(LineReceiver):

   def Button_Clicked(self,out):
        self.sendLine(out)

В результате:

File "/usr/lib/python2.6/dist-packages/twisted/protocols/basic.py", line 296, in sendLine
    return self.transport.write(line + self.delimiter)
AttributeError: 'NoneType' object has no attribute 'write'

Может ли кто-нибудь привести пример того, как мы могли бы отправлять некоторые данные при нажатии кнопки PyQt?

Спасибо, пока!

1 Ответ

2 голосов
/ 04 декабря 2010

Вы не можете просто создать экземпляр Twisted() и затем использовать его;это Protocol, а Protocol должны быть созданы с помощью Factory в ответ либо на подключение клиента, либо на принятие входящего подключения в качестве сервера.Ошибка, которую вы видите, говорит о том, что транспорт Twisted не существует в точке, где нажимается кнопка, поэтому отправлять данные некуда.

Поскольку я предполагаю, что вывы пишете клиент, вы, вероятно, хотите прочитать учебник Writing Clients .

...