摘要:
python中有时候需要用到全局变量, 并且这个全局变量需要跨文件, 跨模块共享. 为此, 我设计了一个全局对象, 它有以下特点: - 如果引用不存在的属性, 不报错, 而是返回None - 如果为不存在的属性赋值, 则会自动生成这个属性, 后续就可以正常引用这个属性, 就像对象本身具有此属性一样 阅读全文
摘要:
python在用tk编程时, 界面响应函数最好在另外一个线程中运行, 以免界面没有响应. 为方便使用, 封装了一个装饰器, 调用函数时自动在另外一个线程中运行. 示例代码如下: ```python import threading def run_in_thread(func): def wrapp 阅读全文
摘要:
传递一组无线按钮名称的列表, 返回用户选择的是哪个选项: ```python import tkinter as tk import threading from tkinter import Menu, Frame, Label class RatioButtons(tk.Frame): '''对 阅读全文
摘要:
先上代码: ```python from tkinter import * root = Tk() selected_var = IntVar() radiobutton = Radiobutton(root, text='hzq1', variable=selected_var, value=88 阅读全文
摘要:
simpledialog.askstring还是比较好用的, 能够很方便的获取用户输入的文本, 但是在多线程中会出现下面的错误: `_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed 阅读全文
摘要:
今天遇到一个奇怪的问题, 如下面的代码: ```python import tkinter as tk from tkinter import simpledialog def popup(): user_input = tk.simpledialog.askstring("输入对话框", "请输入 阅读全文
摘要:
python的类型注释还是很方便的, 相当于动态语言中增加类型系统, 很方便支持代码自动补全. 但是它毕竟不是编译型语言, 如果引用的类型在后面定义, 就会出现找不到此类型的提示. 这时候只需要把这个类型当作字符串就可以了, 不仅不会报错, 仍然还会享受代码补全的好处. 如下所示: ```pytho 阅读全文
摘要:
TK增加菜单项的编码是比较复杂的, 为方便使用, 我做了一下封装, 用户使用场景: ```python root = tk.Tk() AddMenuItem(root,'File.New.Close',lambda:print('111')) AddMenuItem(root,'File.Hzq', 阅读全文
摘要:
直接上代码: ```python from tkinter import * def print_menu_items(menu): num_items = menu.index('end') # 最后一个菜单项的索引 for index in range(num_items+1): # 遍历所有的 阅读全文
摘要:
python的lxml模块是处理xml文档的比较好用的工具, 其中的xpath函数可以检索指定的元素, 但是它不支持正则表达式, 比如某个属性的值是否匹配某个正则表达式, 就没有办法实现. 不过可以利用它的自定义函数扩展功能来实现, 如下代码所示: ```python import re from 阅读全文