Wenhao Hong
Wenhao Hong

Reputation: 65

Implement pywebview on kivy

I implemented pywebview on kivy. After clicking the button it will create the window, but after closing the window and click the button again, the window did not created.

How can I solve this problem ?

Below is my code :

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
import threading
import webview
class LoginScreen(BoxLayout):    
    def __init__(self, **kwargs):
        super(LoginScreen, self).__init__(**kwargs)
        self.btn1 = self.add_widget(Button(text='Web',on_press=self.on_web))    
    def on_web(self,instance):
        url='http://www.google.com'
        print("Im open windows")
        webview.create_window('My Web App', url=url,debug=True)

class MyApp(App):    
    def build(self):
        return LoginScreen()
if __name__ == '__main__':
    MyApp().run()

Upvotes: 3

Views: 2837

Answers (1)

user3850351
user3850351

Reputation: 31

In the following lines, remove the debug=True from the webview.create_window. Then add webview.start(debug=True) per https://github.com/r0x0r/pywebview and https://pywebview.flowrl.com/examples/debug.html

webview.create_window('My Web App', url=url)
webview.start(debug=True) 

Also, the following are the params for the create_window function, notice that there is no debug per https://pypi.org/project/pywebview/0.5/:

webview.create_window(title, url, width=800, height=600, resizable=True, fullscreen=False)

The above works for me (Python 3, Kivy 1.11, Windows10) after the edit and test of your code.

Upvotes: 3

Related Questions