当前位置: 首页 > article >正文

更新-Python OS

更新日志(2024-10-3  13:56):

  • 此次更新主要是将按钮替换为图片,在观感上会更好看一些
  • 增添修改名称【change_app_name】函数,用于修改应用名称

相关代码:

import os
import tkinter as tk
from tkinter import messagebox, simpledialog
from PIL import Image, ImageTk

def open_cumputer_app():
    print("打开此电脑")

def attribute_cumputer_app():
    print("查看此电脑属性")

def delete_cumputer_app():
    print("删除此电脑图标")

def change_app_name():
    new_name = simpledialog.askstring("输入名称", "请输入新的名称:")
    if new_name:
        print(f"名称已更改为: {new_name}")
        # 如果需要更新界面上的名字,可以在这里进行操作
        name_label.config(text=new_name)

def show_popup(menu, event):
    menu.post(event.x_root, event.y_root)

def on_double_click_computer_button(event):
    open_cumputer_app()

# 创建主窗口
root = tk.Tk()
root.title("Desktop Application")
root.geometry("800x600")

# 获取当前文件所在目录
current_dir_file_data = os.path.dirname(__file__)

# 加载此电脑图片
icon_width, icon_height = 64, 64  # 图标大小
computer_button_img = Image.open(os.path.join(current_dir_file_data,'data', "应用图标", "此电脑.jpg"))
computer_button_img = computer_button_img.resize((icon_width, icon_height), Image.LANCZOS)  # 调整图片大小
computer_button_image = ImageTk.PhotoImage(computer_button_img)

# 创建一个 Frame 用于放置图片和应用名称
app_frame = tk.Frame(root)
app_frame.place(x=10, y=10)

# 创建一个 Label 用于放置图片
image_label = tk.Label(app_frame, image=computer_button_image)
image_label.image = computer_button_image  # 保持对 PhotoImage 的引用,避免被垃圾回收
image_label.grid(row=0, column=0, sticky="nsew")

# 创建一个 Label 用于显示应用名称
name_label = tk.Label(app_frame, text="此电脑", font=("Arial", 10))
name_label.grid(row=1, column=0, sticky="nsew")

# 创建一个弹出菜单
menu_cumputer_app = tk.Menu(root, tearoff=0)  # 用于应用软件的右键菜单

# 应用软件右键菜单项
menu_cumputer_app.add_command(label="打开", command=open_cumputer_app)
menu_cumputer_app.add_command(label="属性", command=attribute_cumputer_app)
menu_cumputer_app.add_separator()
menu_cumputer_app.add_command(label="删除", command=delete_cumputer_app)
menu_cumputer_app.add_command(label="修改名称", command=change_app_name)

# 绑定右键点击事件
image_label.unbind("<Button-3>")  # 取消之前的绑定
image_label.bind("<Button-3>", lambda event: show_popup(menu_cumputer_app, event))  # 使用应用菜单
image_label.bind("<Double-Button-1>", on_double_click_computer_button)  # 绑定左键双击

# 运行主循环
root.mainloop()

注:要在指定的路径下放置图片,不然会报错,后续会整理到源码中


http://www.kler.cn/news/330603.html

相关文章:

  • 基于SpringCloud的微服务架构下安全开发运维准则
  • Linux -- 文件系统(文件在磁盘中的存储)
  • 滚雪球学Oracle[6.1讲]:高级特性与实战案例
  • JZ2440开发板——代码重定位
  • PHP反序列化8(phar反序列化)
  • Webstorm 中对 Node.js 后端项目进行断点调试
  • Leecode热题100-84.柱状图中的最大矩形
  • Go基础编程 - 15 - 延迟调用(defer)
  • Flume面试整理-Flume是什么?
  • 滚雪球学Oracle[5.1讲]:Oracle数据库管理与维护
  • 基于单片机的花色可调跑马灯设计
  • Library介绍(三)
  • 从0到1深入浅出构建Nest.Js项目
  • 如何伪装服务器地址?
  • 基于SSH的酒店管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • 三大马车;预征税赋;贷款供楼
  • python中的find函数怎么用
  • 51单片机的串口
  • 算法打卡:第十一章 图论part10
  • MySQL的优化手段