大神论坛

找回密码
快速注册
查看: 90 | 回复: 0

[源码] 用Tkinter实现传参打开浏览器网站源码

主题

帖子

0

积分

初入江湖

UID
667
积分
0
精华
威望
0 点
违规
大神币
68 枚
注册时间
2023-10-14 10:49
发表于 2023-12-17 15:08
本帖最后由 a1100330 于 2023-12-17 15:08 编辑

首先自己真的是个初学者,而且自学的,大佬们勿喷,或者有什么更好的改进,大佬们帮忙指导。
Tkinter的下拉框使用及传参打开浏览器网站、打开本地的应用程序(默认路径)。
可以应用到公司网站和应用程序集合到一个小的程序上,可以转成exe程序,方便打开、携带,主要还是为了学习使用方法,把每句代码都以自己的理解标注了,方便大家理解学习,因为自己也是初学者,有误人子弟的情况请大家原谅。
其中程序的背景图片代码没有运行,大家可以找一张自己喜欢的图片使用,放在和py文件同一个文件夹下,一定要是PNG的图片,打开背景图片的那段代码。
运行结果:

代码:

import webbrowser
import tkinter as tk
from tkinter import ttk
from tkinter import *

#创建窗口
win = tk.Tk() #创建窗口
win.geometry("400x300") #设置窗口大小
win.title('传参') #设置窗口标题
win.resizable(0,0) #固定窗口,不能全屏

#背景图片代码
C = Canvas(win, bg="blue", height=1, width=1)
filename = PhotoImage(file = "./bg/2029566617.png") #加载背景图片
background_label = Label(win, image=filename) #加载
background_label.place(x=0, y=0, relwidth=1, relheight=1) #位置
C.pack()

#传参打开下拉框中的网址或者应用程序
def go(): # 函数定义
url = comboxlist.get() #返回选择网址
webbrowser.open(url, new=0, autoraise=True) #打开网站

#配置下拉框
win.configure(bg='green')
comvalue = tk.StringVar() #内部定义的字符串变量类型,用于按钮文字变更,窗体自带的文本,新建一个值
comboxlist = ttk.Combobox(win, textvariable=comvalue) #初始化,创建下拉文本框
comboxlist["values"] = ('请选择需要打开的网站','https://www.dslt.tech/', 'https://www.baidu.com/', 'https://next.itellyou.cn/') #添加列表返回字典的值
comboxlist.current(0) #选择第一个
comboxlist.config(width=50) #设置下拉框的长
comboxlist.pack(side=TOP) #控件布局,只有在三种里选择一种,项目不能有两种布局

#配置两个按钮
button2 = tk.Button(win, text="链接", command=go) #创建确定按键,点击确定传递时间go
button2.pack(side=TOP,expand=NO,fill=NONE,anchor=CENTER) #位置置顶并且铺满X轴,控件布局,只有在三种里选择一种,项目不能有两种布局
button1 = tk.Button(win, text="退出", command=win.destroy) #创建退出按键
button1.pack(side=BOTTOM,expand=NO,fill=NONE,anchor=CENTER) #位置置顶并且铺满X轴,控件布局,只有在三种里选择一种,项目不能有两种布局

#配置一个文字框

text =Text(win,width=50,height=3,bd=3, wrap=WORD, bg="white",font=('微软雅黑',15,"bold")) #创建一个Text文本框,大小,背景,字体大小
text.pack(side=TOP,fill=NONE) #控件布局,只有在三种里选择一种,每个项目不能有两种布局
#text.tag_config('link',foreground='blue',underline=True) #配置字体颜色及是否有下划线

#配置打开文字框中的链接
def show_hand_cursor(event): # 定义函数,显示箭头,会绑定到鼠标指向链接时的事件
text.config(cursor='arrow')
def show_arrow_cursor(event): # 定义函数,显示光标(指针指向空白时会用到),会绑定到鼠标移除事件
text.config(cursor='xterm')
def click(event,x): # 定义函数,打开一个链接,会绑定到鼠标单击链接的事件中
webbrowser.open(x)
def handlerAdaptor(fun,**kwds): # 事件处理函数的适配器,相当于中介,那个event是从那里来的呢?我也纳闷,这也许就是python的伟大之处吧
return lambda event,fun=fun,kwds=kwds:fun(event,**kwds)

#url1和name的关联
url1 =['C:\Program Files (x86)\Tencent\WeChat\WeChat.exe','C:\Program Files (x86)\WXWork\WXWork.exe']
#创建打开程序位置列表
name =['微信','企业微信',] ##创建程序名称列表
m=0
for each in name: #循环遍历名字
text.tag_config(m,foreground='red',underline=False) #配置字体颜色及是否有下划线
text.tag_bind(m,'<Enter>',show_hand_cursor) #Tag_bind和鼠标时间关联
text.tag_bind(m,'<Leave>',show_arrow_cursor) #Tag_bind和鼠标时间关联

text.insert(INSERT,each+' ',m) #显示输入name及链接

text.tag_bind(m,'<Button-1>',handlerAdaptor(click,x=url1[m])) #Tag_bind和网址的关联
m+=1


mainloop()


注:若转载请注明大神论坛来源(本贴地址)与作者信息。

返回顶部