吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1366|回复: 6
收起左侧

[Python 原创] Tkinter的下拉框使用及传参打开浏览器网站

[复制链接]
zheng8542 发表于 2023-12-14 09:11
本帖最后由 zheng8542 于 2023-12-14 11:34 编辑

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

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
LM14233 + 1 + 1 论坛禁止求脱求破,求助软件分析思路,务必在主题帖中描述清楚你的分析思路.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nitian0963 发表于 2023-12-14 09:25
新手来学习一下。
010000 发表于 2023-12-14 09:40
vethenc 发表于 2023-12-14 11:10
turmasi1234 发表于 2023-12-14 11:19
这个不错,使用简单,感谢分享
FruitBaby 发表于 2023-12-14 14:14
试了一下,确实不错,很简洁
studentguo 发表于 2023-12-18 20:50
学习。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表