pywebview | Build GUI for your Python program | Dektop Application library

 by   r0x0r Python Version: 5.1 License: BSD-3-Clause

kandi X-RAY | pywebview Summary

kandi X-RAY | pywebview Summary

pywebview is a Python library typically used in Apps, Dektop Application, Electron applications. pywebview has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has high support. You can install using 'pip install pywebview' or download it from GitHub, PyPI.

pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its own native GUI window. It gives you power of web technologies in your desktop application, hiding the fact that GUI is browser based. You can use pywebview either with a lightweight web framework like Flask or Bottle or on its own with a two way bridge between Python and DOM. pywebview uses native GUI for creating a web component window: WinForms on Windows, Cocoa on macOS and QT or GTK on Linux. If you choose to freeze your application, pywebview does not bundle a heavy GUI toolkit or web renderer with it keeping the executable size small. pywebview is compatible with Python 3. pywebview is created by Roman Sirokov.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              pywebview has a highly active ecosystem.
              It has 3590 star(s) with 467 fork(s). There are 60 watchers for this library.
              There were 6 major release(s) in the last 12 months.
              There are 19 open issues and 761 have been closed. On average issues are closed in 38 days. There are 2 open pull requests and 0 closed requests.
              OutlinedDot
              It has a negative sentiment in the developer community.
              The latest version of pywebview is 5.1

            kandi-Quality Quality

              pywebview has 0 bugs and 0 code smells.

            kandi-Security Security

              pywebview has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              pywebview code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              pywebview is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              pywebview releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              Installation instructions, examples and code snippets are available.
              It has 7597 lines of code, 640 functions and 115 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed pywebview and discovered the below as its top functions. This is intended to give you an instant insight into pywebview implemented functionality, and help decide if they suit your requirements.
            • Create a new window
            • Initializes the window
            • Make a unicode string
            • Create the application menu
            • Create file dialog
            • Parse a file type
            • Adds file filters to dialog
            • Determine if the chromium is a chromium
            • Check if a new version is newer than the current version
            • Evaluate javascript
            • Return the size of the window
            • Determines if an edge is an edge
            • Called when window state changes
            • Load an HTML page
            • Evaluate a JavaScript script
            • Called when the document has completed
            • Get the current position
            • Called when the browser has changed
            • Expose functions
            • Create a browser
            • Close the widget
            • Evaluate a JavaScript snippet
            • Called when the browser is finished
            • Evaluate a JavaScript code
            • Get the debug port
            • Return the absolute path to the interop
            Get all kandi verified functions for this library.

            pywebview Key Features

            No Key Features are available at this moment for pywebview.

            pywebview Examples and Code Snippets

            QColor,Installation,Possible problems
            Pythondot img1Lines of Code : 5dot img1License : Permissive (MIT)
            copy iconCopy
            
            import webview
            webview.create_window('Hello world', 'https://pywebview.flowrl.com/hello')
            webview.start()
            
              
            copy iconCopy
            pip install -r requirements.txt
            
            python server.py
            
            pip install pythonnet pywebview
            
            python main.pyw
              
            pywebview-react-boilerplate,Installation
            Pythondot img3Lines of Code : 3dot img3License : Permissive (BSD-3-Clause)
            copy iconCopy
            npm run init
            
            npm install
            pip install -r requirements.txt
              
            How to Access pywebview.Window Object from Another multiprocessing.Process?
            Pythondot img4Lines of Code : 9dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            def Kill_Thread(thread):
                if not isinstance(thread, threading.Thread):
                        raise TypeError("Must be set as threading.Thread type!!!")
                thread_id = thread.ident
                res = ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id, c
            How to initiate an action from one window and perform action in another window in pywebview/eel?
            Pythondot img5Lines of Code : 23dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            Click Me
            
            
            from flask_socketio import SocketIO
            
            app = Flask(__name__)
            socket_io = SocketIO(app, cors_allowed_origins='*')
            
            @socket_io.on('emit_button_click_signal')
            def emit_button_click_signal(data):
             

            Community Discussions

            QUESTION

            How to Access pywebview.Window Object from Another multiprocessing.Process?
            Asked 2021-Sep-07 at 13:26

            I have a webview that controlling the flask api.

            The webview will have a button to start the flask server and a button to stop the server. That is why I have to use multiprocessing.Process to create a separate process for Flask. With that, I cannot access my pywebview.Window anymore. I want to use pywebview.Window to evaluate some javascript with pywebview.Window.evaluate_js() within the Flask process (of course it has to be the same pywebview.Window that I already created before open a new process for Flask). Is anybody know how to accomplish this issue. I appreciate it!

            Some sample code:

            ...

            ANSWER

            Answered 2021-Sep-07 at 13:26

            I guess I have to use Threading instead of Processing, since Thread is sharing memory and Process is not. Also, for anybody who want to stop a Thread, here is a function to do that, not sure if this is a good way to do it, but it does the job for me:

            Source https://stackoverflow.com/questions/69020223

            QUESTION

            How to initiate an action from one window and perform action in another window in pywebview/eel?
            Asked 2021-Jun-05 at 04:31

            So, I have opened windows in pywebview at a time. Now from window 1, I want to click a button and show some texts in window 2. How can communicate between them? I was thinking of using flask-socketio or any socket based solution. But that seems like overkill for this, is it? How can this be easily achieved?

            This is the code to open multiple windows in pywebview:

            ...

            ANSWER

            Answered 2021-Jun-05 at 04:31

            Well, in the end, I had to go with the hard way (though it was easy), the socket way. I used flask-socketio to implement this feature. Here is an example:

            Suppose I have 2 separate windows, Window_1, and Window_2. Now I have a button in Window_1, from where I will click a button and a pop-up will show in Window_2.

            Window_1.html

            Source https://stackoverflow.com/questions/65990985

            QUESTION

            Close PyWebView Window with HTML Button click
            Asked 2021-May-20 at 08:57

            Info in advance:
            There is a similar question dealing with the same issue.
            However, this one doesn't work for me (or I just don't know enough to include it properly).
            I have only recently started working with pywebview.

            The goal:
            I want to close the window / end the programme with a link (or button) in HTML.

            The problem:
            The code used does not work for me.
            The function can be reached (the print statement fills up the console,
            unfortunately I have no idea why), but the window is not closed.
            I am just starting with pywebview, so I don't really know what to do.


            Used pages for problem solving:
            PyWebView Website
            StackOverflow Question


            The Code (Python & HTML):

            ...

            ANSWER

            Answered 2021-May-20 at 08:57

            In the meantime I have found a solution that closes the window and exits the program.
            However, I get an error, unfortunately I do not know why.

            The HTML / JS code is correct so far and needs no adjustment.

            In the Python script, only def destroy(self) must be specified instead of def destroy(window).


            Pretty simple actually, but still took me almost a month to solve.

            Source https://stackoverflow.com/questions/67208598

            QUESTION

            Pywebview - How can one freeze pywebview applications into a smaller executable?
            Asked 2021-Mar-04 at 17:24

            My Goal:

            Bundle a simple pywebview application as a standalone executable (one file) on Linux (specifically Arch Linux). The binary executable size must be no greater than 30MB. Code is below.

            The Problem:

            When trying to compile the below application (which is named foobar.py), and when using the below command with pyinstaller:

            ...

            ANSWER

            Answered 2021-Mar-04 at 17:24

            Here's my solution:

            • Create a virtual machine with Ubuntu Linux inside of virtualbox
            • Delete all themes in /usr/local/themes and all icons in /usr/local/icons except the default/ folder
            • Then, try using pyinstaller again
            • Your binary will be around 80 MB in size (37x smaller)

            Source https://stackoverflow.com/questions/66461034

            QUESTION

            the javascript of pywebview python library for MacOS is working with a local implementation, but not from a remote web server
            Asked 2020-Aug-09 at 14:51

            I'm quite a noob at any development at all. So I apologize ahead of time if I'm missing something very trivial.

            I implemented pywebview on ubuntu and on raspbian, and now I'm trying to do it on MacOS. the test bed is Catalina 10.15.5.

            the code I'm running:

            ...

            ANSWER

            Answered 2020-Aug-09 at 14:51

            within the JS on the html side, added an on mouse movement function and worked, which was acceptable for my use case.

            Source https://stackoverflow.com/questions/62501059

            QUESTION

            Rendering reCaptcha on python Http Requests
            Asked 2020-Jul-13 at 10:48

            I am not really sure how can I use the HTTP Requests 's response to show the widget.

            The problem is that when I am requesting GET in http link and it returns a html response; but when I try to render the html part of where the widget is, the pywebview throws off error like

            A Server error occurred. Please contact the administrator.

            Or it shows the values of the html's tag not the html webview itself

            Code for reference:

            ...

            ANSWER

            Answered 2020-Jul-13 at 10:48

            If you ever stumbled upon this question. I have already solved this a week ago.

            The solution I used is to run a custom JS script using Pywebview:

            Question #1 Is there any python framework that renders HTTP response especially the Captcha widget?

            Answer: You have to do it by yourself.

            Question #2 What's the best way to handle this problem?

            Answer: Fetch the widget's location then manually load it to webview. Then after that just get the payload using JS: window.evaluate_js("document.querySelector('#g-recaptcha-response').value")

            Question #3 How can I store the session to webview response?

            Answer: You can't. But maybe you can inject the session using the pywebview's API.

            Question #4 How can I access the previous session that was generated from HTTP Request.

            Answer: This is almost same as the question #3. Maybe we can just fetch the session manually then store it to the pywebview's API.

            Hope anyone helps this.

            Source https://stackoverflow.com/questions/62789684

            QUESTION

            Any advice on my decisions surrounding Python GUI & database?
            Asked 2020-Jun-10 at 05:08

            So my next assignment for school involves creating a python GUI app with a database. I just have a couple basic questions that I am not yet 100% sure on the answers to.

            1. I'm very good with HTML & CSS, however not so good at Javascript (I have about 8 weeks for this project however) - is creating an app with ElectronJS or even just in the web browser with pywebview a good idea or would I be best to stick with some of the older, uglier GUI frameworks such as Tkinter or Kivy?
            2. Is there any major reason to learn how to use NoSQL databases over SQL? I already have a fairly decent understanding of SQL.
            3. And finally, does using a GUI and a database (can the database even be inside the .exe?) pose any issues with packaging my whole project into a .exe or .app at the end or is this nothing to worry about?

            Thanks in advance :)

            ...

            ANSWER

            Answered 2020-Jun-10 at 05:08

            1- As gui with python goes i have mostly worked with pyqt5, its pretty good, it is a mature project, you can even use it to comunicate with the database (sql databases) you can install the qt desigmer for a fast ui design, can apply css (or something really close to it) to your ui components and most important (at least for me) you will find a good amount of resources online on how to work with it and solve any issues that may arise.

            Still if you want to go for a more electron like aproach and put your html and css skills to use, i would recomend Eel, it is fairly easy to use, i havent created anything too complex with it. Now these gui libraries that i mentioned , can be used with the module pyinstaller to create the executables that you need.

            2- If you already have some experience with sql, i recomend that you go with it for two reasons First: sql database engine will fill most of your needs (if not all), go with nosql if you are dealing with huuuge amounts of data or you really want to learn nosql. Second:I dont know if your project is going to comunicate with an external database or is embeded in the project, if it is embeded go with sqlite, if not, for sql i recomend postgres and for nosql use mongodb.

            3- from my experience, sometimes it can get complicated trying to embed everything (database, other external files) within the executable but you can build the app to be in separated files, i recomend that you use for this like i wrote above pyinstaller, it is wel documented and both gui libraries work fine with it. Hope this helps, everything i recomended to you is from personal expierience, there are plenty of database engines, python libraries you can use for the tasks needed to complete your project, check what suits you the best.

            Good luck, sorry for my english.

            Source https://stackoverflow.com/questions/62295653

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install pywebview

            Currently only python version 3.8 or older supported on Windows.
            On Linux you need additional libraries. Refer to the installation page for details.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install pywebview

          • CLONE
          • HTTPS

            https://github.com/r0x0r/pywebview.git

          • CLI

            gh repo clone r0x0r/pywebview

          • sshUrl

            git@github.com:r0x0r/pywebview.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link