在Python3中,如果需要在字符串或字节字符串中放入不可打印的字符,可以使用
mystring = '\x00\x01'
mybytestring = b'\x00\x01'
其中\x00
对应于ASCII 0,\x01
是ASCII 1
>>> mystring = '\x00\x01'
>>> print(mystring)
☺
>>> ord(mystring[0])
0
>>> ord(mystring[1])
1
>>> mybytestring = b'\x00\x01'
>>> mybytestring[0]
0
>>> mybytestring[1]
1
如果我试图通过从QLineEdit中获取文本来实现这一点,则前斜杠似乎会被忽略,我无法找到一个好方法来“取消显示”它们。最小PyQt示例:
from PyQt5.QtWidgets import (QWidget, QApplication, QLineEdit)
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.myedit = QLineEdit(self)
self.myedit.move(10,10)
self.myedit.returnPressed.connect(self.on_myedit_returnPressed)
self.setGeometry(500, 500, 200, 50)
self.show()
def on_myedit_returnPressed(self):
text = self.myedit.text()
print('text: ', text)
for i in range(len(text)):
print(text[i])
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
控制台输出为:
text: \x00\x01 \ x 0 0 \ x 0 1 So it's behaving as if I typed in a string
'\\x00\\x01'
and escaped the forward slashes.
我正在尝试制作一个串行监视器应用程序,在这个应用程序中,我可以通过串行端口向Arduino发送字节。但我一直在努力将这些字节输入到Qt输入小部件中。你知道吗
你可以这样使用它:
希望对你有用
相关问题 更多 >
编程相关推荐