用python的tkinter库显示网页?
这好像不可能
虽然网上有tkinterie,tkinterweb,tkinterhtml,可是好像都不太好用,今天我给大家推荐一个库:
它就是:BOXtool库
这实际上是我开发的综合工具库(我预计在2023-3-01可以使用pip,现在在完善库),我们用的的是其中的BOXtool.tk库,由于还在研发中,所以可能不太稳定,希望各位谅解
由于这是我1年来的心血,所以我只能透露有关显示网页的部分,各位谅解
我当时想着是用tkinterie的,可是System老是导入不成功,我知道System模块是clr导入的DLL,可是就是导入不成功,我就把目光盯向了PyQt和win32gui,于是,我在BOXtool包中加入了这几个函数
1.嵌入窗口
def guitogui(guimain=tkinter.Tk,gui2=""):
import win32gui
hid=win32gui.FindWindow(None,gui2)#获取窗口句柄
win32gui.SetParent(hid,guimain.winfo_id())#显示窗口
首先,获取窗口句柄,然后,嵌入tk窗口
如果你安装win32gui失败,可以安装pypiwin32库
2.Web显示
class WEB():
def __init__(self,root,w,h,x,y,www,sleep=5):
class MainWindow(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
self.setWindowTitle('启动的网页-BOXtool')
self.setVisible(False)
self.setWindowFlags(Qt.FramelessWindowHint)
self.resize(w, h)
# 新建一个QWebEngineView()对象
self.qwebengine = QWebEngineView(self)
# 设置网页在窗口中显示的位置和大小
self.qwebengine.setGeometry(0,0, w, h)
self.move(x,y)
# 在QWebEngineView中加载网址
self.qwebengine.load(QUrl(www))
def async1(f):
def wrapper(*args, **kwargs):
thr = Thread(target = f, args = args, kwargs = kwargs)
thr.start()
return wrapper
@async1
def startweb():
app = QApplication(sys.argv)
win = MainWindow()
win.show()
time.sleep(sleep)
win.setVisible(True)
app.exec_()
startweb()
time.sleep(sleep)
guitogui(root,"启动的网页-BOXtool")
return
这个函数是先用PyQt显示网页,取消PyQt的标题栏,使用异步将PyQt嵌入到Tk
这两个函数是我用了好久才找找的,第一个函数好像把
用Tkinter打造GUI开发工具(41)Tkinter窗口中嵌套其他应用程序窗口_荷蒲的博客-CSDN博客_import hp_mtk2 as hmtkf
的饭碗抢了,实在对不起
我来介绍一下这个Web函数的使用列子
import tkinter
a=tkinter.Tk()
a.geometry("1000x700")
a.title("WYT2WYT的博客")
WEB(a,1000,700,0,0,"https://blog.csdn.net/wyt2wyt?spm=1011.2266.3001.5343",sleep=5)
a.mainloop()
显示:
好不容易写的,点个关注点个攒呗