python - 在 macOS 上编译时输入字段不可编辑 + 不稳定的箭头

标签 python macos input chromium-embedded pywebview

输入字段是可编辑的,当使用 Python3 从终端运行源代码时,我可以使用键盘上的键和 inc/dec 值插入一个值。

但是,当我使用 PyInstaller 成功编译它时,它表现得很奇怪:

输入字段根本不会接管您在那里填写的任何内容。 然而,控制台接管了键输入。 当我想使用箭头来增加或减少值时,它们根本没有反应或 react 不稳定。 将光标指向向下箭头以减少,不会为 ex 做任何事情。 将光标指向上箭头以增加,使其点击向下箭头。

此处显示示例:https://youtu.be/Wyx3FOlWNuA

当我通过更改 main.py 中的最后一行来代替使用 CEF 时:

webview.start()

webview.start(gui='cef')

...箭头行为正确。 但是按键输入,还是不行。

尝试在 macOS El Capitan + Catalina 上使用 Python 3.8.5 和 Python 3.6.8/PyInstaller 4.1

在 Windows + Linux 上,一切正常。

这是一些 macOS 限制/错误吗?

我知道:https://github.com/r0x0r/pywebview/issues/66 但我没有使用虚拟环境。

我还知道:Python webview GUI: hover effects and key input not working (using pywebview) 但由于没有人回答,我的评论被删除了,问他现在是否解决了问题,特此开一个新线程。

代码index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Example</title>
</head>
<body>
    <input>
    <input type='number'>
</body>
</html>

代码main.py:

import webview

if __name__ == '__main__':
    webview.create_window('Example', 'index.html')
    webview.start()

代码main.spec:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['main.py'],
             pathex=[],
             binaries=[],
             datas=[('index.html', '.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True)

还尝试使用 https://pyinstaller.readthedocs.io/en/stable/spec-files.html#spec-file-options-for-a-mac-os-x-bundle 编译为 .app ,同样的结果。 还尝试使用 --noconsole 进行编译,结果相同。

最佳答案

唯一对我有用的是禁用控制台设置,EXE() 命令中的 console=False。我相信 CLI 参数,比如 --noconsole,对你不起作用,因为它们被 .spec 文件覆盖了。不确定目前在 OS X 中是否完全可以使用某些控制台 + 窗口输出组合 - 我们计划部署一个单独的脚本来启动终端并运行类似 ./app 的东西。

关于python - 在 macOS 上编译时输入字段不可编辑 + 不稳定的箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64943328/

相关文章:

python - 在 scikit-learn 版本 0.21.2 的 OneHotEncoder 中使用 active_features_ 和 feature_indices_

python - 如何使用 python-sharepoint 库下载文件

python - 使用 matplotlib 添加垂直 slider

python - 如何对Python时间戳求和

html - Firefox 中不同的填充输入和按钮

javascript - 如何获取<p>标签中的搜索框值 - HTML,JS

macos - 在 OSX 上的 zsh 中键入长命令时文本消失?

macos - IKImageView 的 subview 出现在图像下方而不是上方

python - 如何使用 setup.py install 覆盖 insall 目录

linux - Bash模拟终端gui程序的用户输入