利用 tkinter 实现小工具

- 目的:

  • 做个工具给运营使用的一个exe, 让他们不要经常打断我工作(日常被打断思路,要崩溃了)
  • 学习一下tkinter, 本来也可以用web做的~

- 效果(果然是丑的一逼):


.

学习过程

网上了解到的tkinter基本知识:

  • 窗体相关
    • import tkinter as tk
    • window = tk.Tk() 创造基本window, 所有操作基于这个画布上
    • window.title('重命名title')
    • window.geometry('400x400') [设置窗体大小,这里要用x而不是*哈哈]
    • window.minsize(400, 200)/window.maxsize(400, 800) [最小最大窗体限制]
    • window.mainloop() [这里就进入主循环]
  • 菜单栏相关
    • menubar = tk.Menu(window)
    • window.config(menu=menubar)
  • 组件
    • 显示文案
      • tips = tk.StringVar()
      • tk.Label(face, textvariable=tips, fg='red')
    • 输入
      • var_usr_name = tk.StringVar()
      • entry_usr_name = tk.Entry(face, textvariable=var_usr_name, font=('Arial', 14))
      • entry_usr_name.get()拿到输入的东西
    • 容器
      • left_frame = tk.LabelFrame(self.main_frame, text='选择功能')
    • 左侧选择栏
      • listbox = tk.Listbox(
        left_frame, width=12, font=('Arial', 10),
        listvariable=tk.StringVar(value=[i['title'] for i in method_list]),
        selectmode="browse"
        )
      • listbox.bind("<>", select_method) (绑定选择使用的方法)
      • listbox.curselection()[0] (获得当前选择的是哪个)
    • 单选
      • tk.Radiobutton(o, text=choice[i], variable=arg_widget, value=i).grid(column=0, row=i, sticky=tk.W)
    • 组件摆放
      • grid用起来顺手点,place可以在组件少的时候
    • 其他的还是看附件的代码

思路

  • 服务端定义好一个控件的参数, 方便新增加功能控件, 不需要改客户端
    登录完成的时候就去拿一下控件的参数,就像:

  • 另外一个要点就是客户端能获取到服务端得功能列表,并循环创建windows,这里我用得一个办法是:
    将生产页面的函数改成字符串,并使用列表的参数替换,最后eval并赋值给self作为对象的属性,如:


    然后就在 api/v1/helper/modify-relation/ 这个接口写逻辑, 接受参数 inviter, invitee, is_force 0/1 了,

原文地址:https://www.cnblogs.com/yudengc/p/12856469.html