tkinter使用cefpython库_Python3.7 tkinter中嵌入网页(WebView),需要引入cefpython3

这篇博客展示了如何在Python的Tkinter GUI应用中集成CEFPython库,实现一个浏览器窗口。代码示例创建了一个线程,在Tkinter的Frame组件上显示了一个浏览网页的窗口,加载了百度主页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要安装cefpython3

pip install cefpython3

代码如下,注意cefpython3不能和tkinterUI运行在同一个线程

from cefpython3 import cefpython as cef

from tkinter import *

import threading

import sys

# cefpython3 目前只支持python3.7,高版本Python不兼容

def embed_browser_thread(frame, _rect):

sys.excepthook = cef.ExceptHook

window_info = cef.WindowInfo(frame.winfo_id())

window_info.SetAsChild(frame.winfo_id(), _rect)

cef.Initialize()

cef.CreateBrowserSync(window_info, url='http://www.baidu.com')

cef.MessageLoop()

if __name__ == '__main__':

root = Tk()

root.geometry("800x600")

frame1 = Frame(root, bg='blue', height=200)

frame1.pack(side=TOP, fill=X)

frame2 = Frame(root, bg='white', height=200)

frame2.pack(side=TOP, fill=X)

rect = [0, 0, 800, 200]

thread = threading.Thread(target=embed_browser_thread, args=(frame1, rect))

thread.start()

root.mainloop()