我正在构建一个简单的Kivy应用程序与2个屏幕。第一个屏幕有一个简单的按钮,当点击这个按钮时,会转到第二个屏幕,并在嵌入式浏览器中打开一个特定的网站(例如google.com)。我知道Kivy本身并不支持嵌入式浏览器,所以我使用了cefpython。顺便说一下,我使用的是Python 3和Kivy 1.11.1。
https://github.com/cztomczak/cefpython
简单的hello-world示例使用cefpython3,看起来运行得很好。
https://github.com/cztomczak/cefpython/blob/master/docs/Tutorial.md#hello-world
问题是,此代码在Kivy应用程序上打开一个新的应用程序窗口,并暂停其执行,直到浏览器窗口关闭。我想要实现的是在Kivy应用程序屏幕中打开url。
所以,我遇到了在Kivy中嵌入cefpython的例子:
https://github.com/cztomczak/cefpython/blob/master/src/linux/binaries_64bit/kivy_.py
但是这个例子似乎需要pygtk2,而Python3并不支持它,因此,我无法让它工作。此外,对于像尝试打开URL这样的简单活动,代码看起来有点过头了。
有人能指导我如何在Kivy中嵌入cefpython或其他嵌入式浏览器的工作示例吗?
发布于 2021-09-18 19:22:14
我可以通过使用Ubuntu20.04和Python3.7来获得基本的和错误的功能。我安装了Kivie2并通过pip安装了Cefpython3==66.0,然后我用git克隆了这个存储库的https://github.com/allestuetsmerweh/garden.cefpython
然后我按照建议创建了一个符号链接:
在花园路径/to/ -s /garden.cefpython~/.kivy/garden.cefpython
您必须从garden.cefpython进入源文件cefbrowser.py,并更改一些内容,主要是设置为none但不赋值的命名参数、未选中的命名参数或传递给函数但函数未声明的命名参数。
毕竟,一些例子看起来有点管用,但内容安全策略有很多问题。我仍在编写controls.py示例,以尝试更改url...
https://stackoverflow.com/questions/63756143
复制相似问题