最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中pywebview框架使用方法記錄

 更新時(shí)間:2024年09月27日 10:42:23   作者:monster?justin  
Pywebview是一個(gè)用于構(gòu)建網(wǎng)頁(yè)的Python庫(kù),類(lèi)似于Flask框架,但主要使用Python編寫(xiě)而非HTML或JS,通過(guò)簡(jiǎn)單的命令即可安裝和使用,支持創(chuàng)建自制或調(diào)用外部網(wǎng)頁(yè)界面,需要的朋友可以參考下

前言

pywebview是python的一個(gè)庫(kù),類(lèi)似于flask框架,這也是用來(lái)構(gòu)建網(wǎng)頁(yè)的軟件包,它的特點(diǎn)就是不用更多的和html語(yǔ)言和js語(yǔ)言,更多的使用python語(yǔ)言就可以完成網(wǎng)頁(yè)的創(chuàng)建和元素的監(jiān)聽(tīng)該庫(kù)的簡(jiǎn)介和示例,簡(jiǎn)單使用看示例足夠,但是其中也不夠詳盡:https://pywebview.flowrl.com/

一、安裝pywebview

首先,確保已經(jīng)安裝了pywebview,可以通過(guò)以下命令進(jìn)行安裝:

pip install pywebview

二、簡(jiǎn)單使用

簡(jiǎn)單的創(chuàng)建界面和一些基礎(chǔ)操作,這里不再贅述,也沒(méi)什么營(yíng)養(yǎng),官方示例都已給出,這里只貼上一些示例:

一個(gè)示例界面;

import webview

if __name__ == '__main__':
    # Create a standard webview window
    window = webview.create_window('Simple browser', 'https://pywebview.flowrl.com/hello')
    webview.start()

一個(gè)自制界面:

import webview

html = """
  <html>
    <head></head>
    <body>
      <h2>Links</h2>

      <p><a >Regular links</a> are opened in the application window.</p>
      <p><a  target='_blank'>target='_blank' links</a> are opened in an external browser.</p>

    </body>
  </html>
"""

if __name__ == '__main__':
    window = webview.create_window('Link types', html=html)
    webview.start()

調(diào)用的是外部界面:

import webview

if __name__ == '__main__':
    window = webview.create_window(title='Webview App', url="https://hailuoai.com/?type=chat&chatID=251739240281759747/", confirm_close=True,
                                   zoomable=True, vibrancy=True, width=1275, height=745)
    webview.start(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0',
                  debug=True)

 于是可以從這幾個(gè)例子看出來(lái),pywebview主要有兩種,可以是自制的網(wǎng)頁(yè)html參數(shù),又或者是url的外部鏈接。

三、高級(jí)使用

主要是關(guān)于dom的元素創(chuàng)建選擇何使用:按鈕等等,關(guān)于bind函數(shù)

import random
import webview

rectangles = []

def random_color():
    red = random.randint(0, 255)
    green = random.randint(0, 255)
    blue = random.randint(0, 255)

    return f'rgb({red}, {green}, {blue})'

def bind(window):
    def toggle_disabled():
        disabled = None if len(rectangles) > 0 else True
        remove_button.attributes = { 'disabled': disabled }
        empty_button.attributes = { 'disabled': disabled }
        move_button.attributes = { 'disabled': disabled }

    def create_rectangle(_):
        color = random_color()
        rectangle = window.dom.create_element(f'<div class="rectangle" style="background-color: {color};"></div>', rectangle_container)
        rectangles.append(rectangle)
        toggle_disabled()

    def remove_rectangle(_):
        if len(rectangles) > 0:
            rectangles.pop().remove()
        toggle_disabled()

    def move_rectangle(_):
        if len(rectangle_container.children) > 0:
            rectangle_container.children[-1].move(circle_container)

    def empty_container(_):
        rectangle_container.empty()
        rectangles.clear()
        toggle_disabled()

    def change_color(_):
        circle.style['background-color'] = random_color()

    def toggle_class(_):
        circle.classes.toggle('circle')

    rectangle_container = window.dom.get_element('#rectangles')
    circle_container = window.dom.get_element('#circles')
    circle = window.dom.get_element('#circle')

    toggle_button = window.dom.get_element('#toggle-button')
    toggle_class_button = window.dom.get_element('#toggle-class-button')
    duplicate_button = window.dom.get_element('#duplicate-button')
    remove_button = window.dom.get_element('#remove-button')
    move_button = window.dom.get_element('#move-button')
    empty_button = window.dom.get_element('#empty-button')
    add_button = window.dom.get_element('#add-button')
    color_button = window.dom.get_element('#color-button')

    toggle_button.events.click += lambda e: circle.toggle()
    duplicate_button.events.click += lambda e: circle.copy()
    toggle_class_button.events.click += toggle_class
    remove_button.events.click += remove_rectangle
    move_button.events.click += move_rectangle
    empty_button.events.click += empty_container
    add_button.events.click += create_rectangle
    color_button.events.click += change_color

if __name__ == '__main__':
    window = webview.create_window(
        'DOM Manipulations Example', html='''
            <html>
                <head>
                <style>
                    button {
                        font-size: 100%;
                        padding: 0.5rem;
                        margin: 0.3rem;
                        text-transform: uppercase;
                    }

                    .rectangle {
                        width: 100px;
                        height: 100px;
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        margin: 0.5rem;
                        border-radius: 5px;
                        background-color: red;
                    }

                    .circle {
                        border-radius: 50px;
                        background-color: red;
                    }

                    .circle:hover {
                        background-color: green;
                    }

                    .container {
                        display: flex;
                        flex-wrap: wrap;
                    }
                </style>
                </head>
                <body>
                    <button id="toggle-button">Toggle circle</button>
                    <button id="toggle-class-button">Toggle class</button>
                    <button id="color-button">Change color</button>
                    <button id="duplicate-button">Duplicate circle</button>
                    <button id="add-button">Add rectangle</button>
                    <button id="remove-button" disabled>Remove rectangle</button>
                    <button id="move-button" disabled>Move rectangle</button>
                    <button id="empty-button" disabled>Remove all</button>
                    <div id="circles" style="display: flex; flex-wrap: wrap;">
                        <div id="circle" class="rectangle circle"></div>
                    </div>

                    <div id="rectangles" class="container"></div>
                </body>
            </html>
        '''
    )
    webview.start(bind, window)

并且使用event可以監(jiān)聽(tīng)按鈕等等的事件發(fā)生

并且是支持動(dòng)態(tài)生成元素的:

with open(file_path, 'r', encoding='utf-8') as file:
    for line in file:
        count += 1
        window.dom.create_element(
            f"<input id='word{count}' writingsuggestions='true' type='text' class='editable-textbox'>111</input>"
        )
        temp = window.dom.get_element(f'#word{count}')
        line = line.rstrip('\n')
        temp.value = line

總結(jié)

到此這篇關(guān)于python中pywebview框架使用方法記錄的文章就介紹到這了,更多相關(guān)python pywebview框架使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于隨機(jī)采樣一至性實(shí)現(xiàn)擬合橢圓(優(yōu)化版)

    Python基于隨機(jī)采樣一至性實(shí)現(xiàn)擬合橢圓(優(yōu)化版)

    這篇文章主要對(duì)上一版的Python基于隨機(jī)采樣一至性實(shí)現(xiàn)擬合橢圓的優(yōu)化,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
    2022-11-11
  • Python3使用turtle繪制超立方體圖形示例

    Python3使用turtle繪制超立方體圖形示例

    這篇文章主要介紹了Python3使用turtle繪制超立方體圖形,結(jié)合實(shí)例形式分析了Python使用海龜繪圖模塊turtle進(jìn)行復(fù)雜圖形繪制的相關(guān)原理與操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python實(shí)現(xiàn)雙色球號(hào)碼隨機(jī)生成

    Python實(shí)現(xiàn)雙色球號(hào)碼隨機(jī)生成

    和體彩大樂(lè)透類(lèi)似,福彩雙色球也是購(gòu)買(mǎi)次數(shù)最多的彩種之一,相比大樂(lè)透,雙色球更容易中小獎(jiǎng)。本文將介紹?Python?實(shí)習(xí)雙色球彩票自由的流程,感興趣的可以了解一下
    2022-05-05
  • Python 中的函數(shù)裝飾器和閉包詳解

    Python 中的函數(shù)裝飾器和閉包詳解

    這篇文章主要介紹了Python 中的函數(shù)裝飾器和閉包詳解,需要的朋友可以參考下
    2021-02-02
  • python使用ddddocr庫(kù)識(shí)別滑動(dòng)驗(yàn)證碼簡(jiǎn)單代碼示例

    python使用ddddocr庫(kù)識(shí)別滑動(dòng)驗(yàn)證碼簡(jiǎn)單代碼示例

    這篇文章主要介紹了如何使用ddddocr庫(kù)來(lái)識(shí)別滑塊驗(yàn)證碼,并提供了一個(gè)示例代碼和識(shí)別結(jié)果,同時(shí)提醒注意ddddocr庫(kù)的大小限制,可能會(huì)影響某些無(wú)服務(wù)器函數(shù)的部署,需要的朋友可以參考下
    2024-11-11
  • python并發(fā)和異步編程實(shí)例

    python并發(fā)和異步編程實(shí)例

    這篇文章主要為大家詳細(xì)介紹了python并發(fā)和異步編程實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • import的本質(zhì)解析

    import的本質(zhì)解析

    import是我們經(jīng)常使用的功能,方法大家也都會(huì)。雖然用的多,但它的本質(zhì)我們似乎沒(méi)有好好的了解過(guò)。本文就import的本質(zhì)解析,向大家作了介紹,需要的朋友可以參考下。
    2017-10-10
  • 使用Python進(jìn)行圖像裁剪和直方圖分析

    使用Python進(jìn)行圖像裁剪和直方圖分析

    在數(shù)字圖像處理領(lǐng)域,裁剪和分析圖像的直方圖是兩個(gè)非?;厩抑匾牟僮?本文將通過(guò)一個(gè)簡(jiǎn)單的Python項(xiàng)目,展示如何使用skimage和matplotlib庫(kù)來(lái)裁剪圖像并分析其RGB通道的直方圖,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-01-01
  • Python利用pytest和selenium實(shí)現(xiàn)自動(dòng)化測(cè)試完整指南

    Python利用pytest和selenium實(shí)現(xiàn)自動(dòng)化測(cè)試完整指南

    自動(dòng)化測(cè)試是現(xiàn)代軟件開(kāi)發(fā)中不可或缺的一環(huán),Python作為一門(mén)簡(jiǎn)潔優(yōu)雅的編程語(yǔ)言,配合pytest測(cè)試框架和selenium自動(dòng)化工具,為我們提供了強(qiáng)大的自動(dòng)化測(cè)試解決方案,下面小編就來(lái)和大家簡(jiǎn)單介紹一下吧
    2025-08-08
  • python selenium 對(duì)瀏覽器標(biāo)簽頁(yè)進(jìn)行關(guān)閉和切換的方法

    python selenium 對(duì)瀏覽器標(biāo)簽頁(yè)進(jìn)行關(guān)閉和切換的方法

    今天小編就為大家分享一篇python selenium 對(duì)瀏覽器標(biāo)簽頁(yè)進(jìn)行關(guān)閉和切換的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

壤塘县| 大冶市| 郯城县| 呼玛县| 浦城县| 布尔津县| 乐昌市| 盐亭县| 景泰县| 林口县| 瓦房店市| 周宁县| 姜堰市| 泰州市| 南陵县| 六安市| 江川县| 弋阳县| 固安县| 砚山县| 峨眉山市| 北流市| 武平县| 桦甸市| 达孜县| 松阳县| 镇巴县| 苍南县| 惠水县| 张家川| 龙口市| 普格县| 丰原市| 东台市| 双峰县| 富民县| 武安市| 同江市| 上虞市| 万安县| 枝江市|