Python中pywebview框架使用方法记录!
Python中pywebview框架使用方法记录!
Pywebview是一个用于构建网页的Python库,类似于Flask框架,但主要使用Python编写而非HTML或JS,通过简单的命令即可安装和使用,支持创建自制或调用外部网页界面,需要的朋友可以参考下。
前言
pywebview是python的一个库,类似于flask框架,这也是用来构建网页的软件包,它的特点就是不用更多的和html语言和js语言,更多的使用python语言就可以完成网页的创建和元素的监听该库的简介和示例,简单使用看示例足够,但是其中也不够详尽:https://pywebview.flowrl.com/
一、安装pywebview
首先,确保已经安装了pywebview,
可以通过以下命令进行安装:
1
|
pip install pywebview |
二、简单使用
简单的创建界面和一些基础操作,这里不再赘述,也没什么营养,官方示例都已给出,这里只贴上一些示例:
一个示例界面;
1
2
3
4
5
6
|
import webview if __name__ = = '__main__' : # Create a standard webview window window = webview.create_window( 'Simple browser' , 'https://pywebview.flowrl.com/hello' ) webview.start() |
一个自制界面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import webview html = """ < html > < head ></ head > < body > < h2 >Links</ h2 > < p >< a href = 'https://pywebview.flowrl.com' >Regular links</ a > are opened in the application window.</ p > < p >< a href = 'https://pywebview.flowrl.com' 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() |
调用的是外部界面:
1
2
3
4
5
6
7
|
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 ) |
于是可以从这几个例子看出来,pywebview主要有两种,可以是自制的网页html参数,又或者是url的外部链接。
三、高级使用
主要是关于dom的元素创建选择何使用:按钮等等,关于bind函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
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可以监听按钮等等的事件发生
并且是支持动态生成元素的:
1
2
3
4
5
6
7
8
9
|
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 |
总结
到此这篇关于python中pywebview框架使用方法记录的文章就介绍到这了.
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论