小编yur*_*snm的帖子

QWebEngineView,在视图内发布KeyEvents

我有自己的“虚拟键盘”。我已经必须将单击的按钮转换为KeyEvents,并将其交付给QTextEdit,依此类推。我现在的问题是我想对QWebEngineView中的可写区域执行相同的操作。

例如,我使用键盘编辑QLineEdit,然后请求一个网站。完成

假设我请求了Google。现在,我眼前就是Google网站。我需要将KeyEvents从我的键盘发送到它的搜索框。(位于QWebEngineView内的框。

现在让我们指出几点:

  1. 我正在使用PyQt5
  2. 如我所读,API告诉我它的父级应该将KeyEvent消耗到corect位置。这里
  3. 该代码段显示“ ...就像使用QtWebKit一样。”
  4. 现在,我已经看到不再有QtWebKit,因此是Chromium。(也许这就是我不打算发布这些事件的原因)

例如,这就是我模拟到QEditText的KeyEvent的对象。

from PyQt5.QtCore import QCoreApplication
from PyQt5.QtCore import QEvent
from PyQt5.QtCore import QSize
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QKeyEvent
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QPushButton


class KeyboardKey(QPushButton):

    __path = ""

    __size = [30, 30]
    __style = ""
    __icon_on = ""
    __icon_off = ""
    __auto_repeat = True
    __receiver = None
    __key = None
    __str_key = None

    def __init__(self, style, str_icon_on, str_icon_off, …
Run Code Online (Sandbox Code Playgroud)

qt pyqt qkeyevent qevent

2
推荐指数
1
解决办法
414
查看次数

在windows和linux上分割简单的特定路径

问题:

在以下情况下,我在 Windows 和 Linux 上有不同的行为。

import os
path = '..\\file.hdf'
norm_path = os.path.normpath(path)
splitted_path = os.path.split(norm_path)
print(splitted_path)
Run Code Online (Sandbox Code Playgroud)

行为

在 Windows 上我得到('', 'file.hdf')

在Linux上我得到('', '..\\file.hdf')

问题

有没有更好/具体的方法来使用 os.path ?

解决方法

好吧,用 可以很容易地修复它norm_path.split('\\'),但这根本不是动态的。

python linux windows

2
推荐指数
1
解决办法
1200
查看次数

标签 统计

linux ×1

pyqt ×1

python ×1

qevent ×1

qkeyevent ×1

qt ×1

windows ×1