我正在开发一个Python+Qt WebSMS应用程序/脚本。它请求一个号码和信息,并通过mechanize发送给沃达丰。由于我国的沃达丰不支持UTF-8,至少对于网络短信和每条短信都应该少于160个字符,我使用这个设置:
def setMesaj():
global mesaj
mesaj = unicode(self.textEdit.toPlainText().toUtf8(), "utf-8")
mesaj = mesaj.encode("ascii", "ignore")
if (len(mesaj)) > 159:
print "[WARN-1] Mesaj 160 karakterden fazla?"
i = len(mesaj) - 159
mesaj = mesaj [:-i]
print mesaj
QtCore.QObject.connect(self.textEdit, QtCore.SIGNAL("textChanged()"), setMesaj)
嗯,这很管用。如果消息超过160个字符,最后一个字母将被自动删除,如果用户试图键入任何“奇怪”字符,它将不被接受。在
我的问题是:变量'mesaj'工作得很好,但是它没有更新QTextEdit,所以当它没有得到超过160个字符(或Unicode)的内容时,它看起来还是允许用户使用的。那么,如何在用户写入QTextEdit时更新QTextEdit并使更改看起来同步呢?在
谢谢
检测文本光标正确位置的一种方法是使用^{} 定义一个自定义错误函数,该函数重复
"ignore"
,但还记得光标前面删除了多少个字符,并在编码后将光标的多个位置向左移动。在这将是我的快速和肮脏的方法,但你仍然需要把文本光标放在正确的位置后进行编辑。在
相关问题 更多 >
编程相关推荐