tkinter内置浏览器,tkinter界面设计工具
TKInterbrowser组件介绍构思tcl方面dll方面嵌入窗口!创建浏览器窗口语言选择创建窗口嵌入式窗口新tkinter浏览器组件:2021-8-10更新TKINIE简单使用:2021-8-16更新TKINIE功能:2021-8-16更新新tkinter Web组件:2021-12-25更新结论
介绍
当然,tkinter的原生核心组件没有浏览器组件,这也是tkinter远远落后于wxpython和PYQT的原因之一。为了让tkinter window能够显示网页,很多人都为tkinter提供了浏览器组件==(注意是浏览器组件,不是html富文本框)==以下是常用的方法或绑定:
TkHtml(TkHtml的Python绑定已经过时很久了,HTML4的风格,不过Tkhtml Web做的还不错)TkHtml(TkHtml的浏览器组件dll的扩展,也比较过时)HV3(TkHtml的浏览器组件dll的扩展,和TkHtml一起用,现代的外观,不过还是老的)cefpython(Python的Google绑定,保持最新,但是很大)那么怎么才能有现在的外观和小尺寸的浏览器组件呢?
就tcl而言,tkinter是tcl/tk的绑定。如果在tcl组件中加入浏览器扩展组件,问题就迎刃而解了。但是这种方法写起来比较复杂,不容易成功。而且就tcl目前使用的浏览器而言,效果与现代浏览器相差甚远。
使用系统ie组件或edgehtml.dll来扩展dll可能是一个好方法。但是结构是这样的:先在Python中注册使用dll的函数,然后把效果传入tcl…….这是显而易见的,超出了实力范围.
嵌入式窗口!这是一种简单、高效、美观的方法。——嵌入在外部浏览器窗口中。许多GUI语言都有自己的浏览器组件使用方法。将这些代码编译成exe文件后,再将文件显示在需要显示的框架中,就成了tkinter的浏览器组件。
创建浏览器窗口注意!这一段是必不可少的,因为tkinter确实需要外部程序的支持才能显示网页!
语言选择为了方便,选择aardio语言,该语言具有扩展的GUI界面和快速智能提示(由中国人开发)。
音频代码直接在创建窗口中给出:
导入win . ui . min max;导入win . ui;导入win.image导入web.form/* DSG { { */main form=win . form(text= html show ;左=0;top=0;右=895;底=700;border= thin最小化=1;mode= popuptitle=false)main form . add()/* } } */Path=io。_ exedirwin . ui . min max(main form)var WB=web . form(main form)WB . no scripterr=true;arg=_CMDLINEif (arg!=null){ WB . go(arg)} else { WB . go( RES none html . html )//这行可以省略,没必要。use } WB . new window 3=function(PP disip,cancel,dwflags,bstrurlcontext,bstrurl) {wb。};main form . show();返回win . loop message();这个想法是创建一个薄边框、没有标题栏的弹出窗口,然后最小化它,以避免使用时的视觉干扰。最后,将其发布为exe文件。
嵌入窗口在我之前的文章中,我描述了如何用win32gui在tkinter windows中嵌入外部窗口。如果你忘了或者不知道,请到我的“tkinter实验”专栏,寻找“tkinter创建真实子窗口”。这里再次说明,我这篇文章的方法不仅可以嵌入tkinter窗口,还可以嵌入任何exe窗口(UPW应用不稳定)。
先了解exe窗口标题(虽然没有标题栏)是“HtmlShow”。其次,把exe文件放在一个目录下,使用绝对路径。
现在让我们编写代码:
从子进程import popen from tkinter import * #为了方便,一般不建议使用import win32 GUI from time import sleep as slpresultframe=frame(master)#创建frame # # #使用exe#Popen必须是完整路径(绝对路径),url为Popen([TinPath data Headset behind html show . exe ,url])slp(1)#等待窗口创建HID=Win32GUI。FindWindow (none,u html Show )# Get window handle win32 GUI . set parent(HID,result frame . winfo _ ID())# Show window的思路和原因,评论里已经解释过了。
TinPath是程序的运行目录,我把生成的HtmlShow.exe放在这个目录下的data后面的耳机下。
请注意,已经设置了外部窗口的大小。如果想覆盖整个框架,还可以调整外窗口的大小,或者使用Win32GUI。显示窗口(HID,Win32Con。SW _最大化)
效果如下:
Tin知识库
新增tkinter浏览器组件:2021年8月10日更新。通过对tkinter浏览器组件的各种实现的研究,我写了一个新的tkinter扩展——tkinterie,通过com调用系统IEFrame,启动webview组件,为tkinter窗口提供一个webview组件。
目前这个模块已经被我上传到pypi,通过pip install tkinterie安装。
2021-8-16更新:使用TKINIE时,必须保证IE的com接口可以正常访问,还必须保证有ieframe.dll。如果不能用,就放弃TKINIE。
TKIE的简单使用:2021-8-16更新通过pip安装tkinterie模块后,可以使用下面的代码显示HTML5元素。
注意是渲染HTML5元素,不是完整的浏览器。
来自TKInterimport *来自TKInterie。TKInterie导入Webview A=TK()A . Geometry( 700 x500 100 100 )W=Webview(A,500,500, www . Baidu . com )W . Pack(expand=true,fill= both
TKIE的功能:2021-8-16更新渲染HTML5元素和css设计(网页或文件)运行JavaScript(网页或文件)TKIE提供的WebView组件可以像普通TKIE组件一样被非自动或自动调整大小多线程使用(使用过程中可能会报错,但不影响使用)嵌入tkinter的画布和文本(如果半遮挡可能报错,但不影响使用)。单击新窗口链接,在本地打开它。在程序中独立呈现HTML5元素和其他web内容。edge自动打开新的tkinter web组件:2021年12月25日更新。为了解决IE即将走到尽头的问题,以及Python中的不良支持,我基于pythonnet和pywebview编写了一个新的tkinter组件3354TKWebView 2。这将允许tkinter使用Windows提供的WebView2。
特定文章
结论看完这篇文章,相信你对tkinter的使用通过上一层楼,tkinter可以实现更多的功能,这是等待我们去探索的。怎么样?你为什么不现在试试?
Tkinter创新