2

如果/dev/ttyS0出现问题,有人可以给我一个示例,说明如何设置 QSocketNotifier 来触发事件吗?(最好在 python/pyqt4 中)

4

1 回答 1

5

这是一个使用 QSocketNotifier 不断从文件中读取的示例。只需将 'foo.txt' 替换为 '/dev/ttyS0' 就可以了。


import os

from PyQt4.QtCore import QCoreApplication, QSocketNotifier, SIGNAL


def readAllData(fd):
        bufferSize = 1024
        while True:
                data = os.read(fd, bufferSize)
                if not data:
                        break
                print 'data read:'
                print repr(data)


a = QCoreApplication([])

fd = os.open('foo.txt', os.O_RDONLY)
notifier = QSocketNotifier(fd, QSocketNotifier.Read)
a.connect(notifier, SIGNAL('activated(int)'), readAllData)

a.exec_()

于 2009-04-26T00:15:44.750 回答