QSocketNotifier (Linux)가있는 직렬 포트를 어떻게 보나요?
-
16-09-2019 - |
문제
누군가 나에게 QSocketNotifier를 설정하여 무언가가 켜지면 이벤트를 시작하는 방법에 대한 예를 제시 할 수 있습니까? /dev/ttys0 ? (바람직하게는 Python/pyqt4에서)
해결책
다음은 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_()
제휴하지 않습니다 StackOverflow