[Python] 纯文本查看 复制代码
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.52pojie.cn/', '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()