从Unicode字符串pyqt pyside发送击键

穆罕默德·优素福

我需要在pyqt4或pyside中模拟击键,我已经有了下面的代码,这很好,但是只添加了大写拉丁字母,不允许使用小写或其他语言的字母

def sendkeys(self, char, modifier=QtCore.Qt.NoModifier):
    event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, char, modifier)
    QtCore.QCoreApplication.postEvent(self, event)

def sendstring(self, string):
    for chara in string:
        print(chara)
        self.sendkeys(char=QtGui.QKeySequence.fromString(str(chara))[0])

这是一个完整的示例,可以使创意与拉丁字母一起使用

from PySide import QtCore, QtGui, QtWebKit


class WebPage(QtWebKit.QWebPage):
    """
    QWebPage that prints Javascript errors.
    """

def javaScriptConsoleMessage(self, message, lineNumber, sourceID):
    print('Javascript error at line number %d' % lineNumber)
    print('%s' % message)
    print('Source ID: %s' % sourceID)


class myWindow(QtWebKit.QWebView):
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)
        self.loadFinished.connect(self.on_loadFinished)
        self.runloadfinished = True
        self.web_page = WebPage()
        self.setPage(self.web_page)
        self.load(QtCore.QUrl('http://stackoverflow.com/'))
def on_loadFinished(self):
    if self.runloadfinished:
        self.sendkeys(QtCore.Qt.Key_Tab)
        self.sendstring('Hello World')
        self.sendkeys(QtCore.Qt.Key_Enter)
        self.sendkeys(QtCore.Qt.Key_Return)
        self.runloadfinished = False

def sendkeys(self, char, modifier=QtCore.Qt.NoModifier):
    event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, char, modifier)
    QtCore.QCoreApplication.postEvent(self, event)

def sendstring(self, string):
    for chara in string:
        print(chara)
        self.sendkeys(char=QtGui.QKeySequence.fromString(str(chara))[0])


if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('myWindow')
    main = myWindow()
    main.show()
    sys.exit(app.exec_())
穆罕默德·优素福

对于以后需要答案的任何人,我已经在upwork.com上雇用了某人并得到了答案,这是一个完整的示例,它适用于python 2和3,pyqt和pyside

# -*- coding: utf-8 -*-

from PySide import QtCore, QtGui, QtWebKit


class WebPage(QtWebKit.QWebPage):
    """
    QWebPage that prints Javascript errors.
    """

    def javaScriptConsoleMessage(self, message, lineNumber, sourceID):
        print('Javascript error at line number %d' % lineNumber)
        print('%s' % message)
        print('Source ID: %s' % sourceID)


class myWindow(QtWebKit.QWebView):
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)
        self.loadFinished.connect(self.on_loadFinished)
        self.runloadfinished = True
        self.web_page = WebPage()
        self.setPage(self.web_page)
        self.load(QtCore.QUrl('http://stackoverflow.com/'))

    def on_loadFinished(self):
        if self.runloadfinished:
            self.sendkeys(QtCore.Qt.Key_Tab)
            self.sendstring("لا اله الا الله ")
            #self.sendstring("Hello World")
            self.sendkeys(QtCore.Qt.Key_Enter)
            self.sendkeys(QtCore.Qt.Key_Return)
            self.runloadfinished = False

    def sendkeys(self, char, modifier=QtCore.Qt.NoModifier, text=None):
        if not text:
            event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, char, modifier)
        else:
            event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, char, modifier, text)
        QtCore.QCoreApplication.postEvent(self, event)

    def sendstring(self, string):
        for chara in string:
            print(chara)

            # QtCore.QString() is missing when using PyQt4 for Python3
            # since str() is unicode by default on Python3
            # http://inputvalidation.blogspot.in/2010/10/python3-pyqt4-and-missing-qstring.html
            try:
                text = QtCore.QString(chara)
            except AttributeError:
                text = str(chara)

            self.sendkeys(char=QtGui.QKeySequence.fromString(str(chara))[0],
                          text=text)


if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('myWindow')

    main = myWindow()
    main.show()

    sys.exit(app.exec_())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Unicode字符串pyqt pyside发送击键

来自分类Dev

PySide / PyQt是否可以在QTextBrowser中获取锚点的字符串

来自分类Dev

PySide / PyQt:是否可以将附加到QTextBrowser的字符串做成单独的可单击单元

来自分类Dev

从PyQt5 PlainTextEdit获取Unicode字符串

来自分类Dev

发送USSD字符串

来自分类Dev

发送剪辑作为击键

来自分类Dev

发送ASCII而不是字符串

来自分类Dev

通过网络发送字符串

来自分类Dev

发送连接字符串到ApplicationDBContext

来自分类Dev

通过http请求发送字符串

来自分类Dev

通过netcat连接发送字符串

来自分类Dev

发送带字符串的请求后

来自分类Dev

Android通过UDP发送字符串

来自分类Dev

发送字符串到QLineEdit

来自分类Dev

发送字符串到特定号码

来自分类Dev

RadioButtonList发送空字符串

来自分类Dev

发送字符串到OBDII

来自分类Dev

发送额外的字符串netcat

来自分类Dev

发送字符串为空

来自分类Dev

通过http请求发送字符串

来自分类Dev

使用Javascript发送查询字符串

来自分类Dev

发送字符串到特定号码

来自分类Dev

发送字符串时Android崩溃

来自分类Dev

在查询字符串中发送 JSON

来自分类Dev

Unicode字符串格式

来自分类Dev

什么是unicode字符串?

来自分类Dev

Unicode字符串转换

来自分类Dev

如何从非字母或数字的字符串中发送字符到字符串末尾?

来自分类Dev

在Bash中发送模拟的击键