python tkinter开发问题记录

python tkinter开发问题记录

记录一些自己使用tkinter中遇到的问题以及处理,记录不熟悉的api等等.

持续记录…

窗口相关

窗口大小以及居中显示

import tkinter

window = tkinter.Tk()
# 得到屏幕宽度
sw = window.winfo_screenwidth()
# 得到屏幕高度
sh = window.winfo_screenheight()
# 窗口宽高
ww = 800
wh = 600
x = (sw - ww) / 2
# 垂直居中 /2 即可
y = (sh - wh) / 4
# 设置窗口大小以及位置  此处通过计算居中显示
window.geometry("%dx%d+%d+%d" % (ww, wh, x, y))

图标相关

设置图标

root = tkinter.Tk()
root_ui = MainUI(root)
root.iconbitmap("icon.ico")
root.mainloop()

图标打包

编写脚本 topyico.py
import base64

open_icon = open("icon.ico", "rb")  # icon.icon为你要放入的图标
b64str = base64.b64encode(open_icon.read())  # 以base64的格式读出
open_icon.close()
write_data = "img=%s" % b64str
f = open("icon.py", "w+")  # 将上面读出的数据写入到icon.py的img数组中
f.write(write_data)
f.close()
设置图标
#原理:通过第一步使用base64把原图标 icon.ico转成py文件保存
# 在窗口初始化时,使用base64把 icon.py 文件内容 写入 icon.ico 生成临时图标 
# 通过root.iconbitmap("icon.ico") 设置图标后,删除本地临时图标 icon.ico
# 这样做的好处是 通过pyinstaller打包时 可以把icon.py打入exe
from icon import img
root = tkinter.Tk()
root_ui = MainUI(root)
root_ui.init_window()
# 设置窗口图标
tmp = open("icon.ico", "wb+")
tmp.write(base64.b64decode(img))  # 写入到临时文件中
tmp.close()
root.iconbitmap("icon.ico")
os.remove("icon.ico")
root.mainloop()

文件相关

选择文件

from tkinter import filedialog
path = filedialog.askopenfilename(title='选择文件',
                                          filetypes=[('图片', '.jpg'),
                                                     ('图片', '.bmp'),
                                                     ('图片', '.png'),
                                                     ('图片', '.jpeg')])

OS操作

# 显示当前使用的平台,'nt'表示Windows,'posix' 表示Linux
os.name
# 返回当前进程的工作目录
os.getcwd()
# 描述:列出目录下的所有文件和文件夹
os.listdir()
# 描述:命名文件或目录,能对相应的文件进行重命名
os.rename()
# 描述:返回文件的绝对路径
os.path.abspath(path)
# 描述:返回文件名包含后缀,纯粹字符串处理逻辑,路径错误也可以
os.path.basename(path)
# 描述:返回文件路径
os.path.dirname(path)
# 描述:把path中包含的""和"user"转换成用户目录
os.path.expanduser(path)
# 描述:把目录和文件名合成一个路径
# 1.如果各组件名首字母不包含’/’,则函数会自动加上
# 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
# 3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
os.path.join(path1[, path2[, ...]])
# 描述:转换path的大小写和斜杠
os.path.normcase(path)
# 描述:规范path字符串形式
os.path.normpath(path)
# 描述:把路径分割成 dirname 和 basename,返回一个元组
os.path.split(path)
# 描述:遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
os.path.walk(path, visit, arg)
#穷举遍历一个文件夹里面的所有文件,并获取文件的目录名
abs_cur_dir ='xxx'
file_url=[]
for dirs,folders,files in os.walk(abs_cur_dir):
    for i in files:
            file_url.append(os.path.join(dirs,i))
print(file_url)

调用系统接口问题

调用os.system()出现cmd窗口问题

解决方法:使用subprocess替代

#举例:调用系统接口 打开文件目录并选中文件
from subprocess import run
# os.system(f'explorer /select, {real_path}')
command = f'explorer /select, {real_path}'
run(command, shell=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种流行的高级编程语言,广泛应用于开发各种类型的应用程序。其中,TkinterPython的一个GUI工具包,可以用于开发各种界面,包括Web应用程序。 在这个项目中,我们可以使用PythonTkinter开发一个数据库图书系统管理应用程序。我们可以使用SQLite或MySQL等关系型数据库来存储和检索图书信息。 用户可以使用该应用程序来管理图书信息,包括添加新书籍、删除、编辑和检索当前库存。我们可以使用Tkinter的窗口小部件,如标签、文本框、按钮、表格等来设计界面,从而实现用户友好的界面和易于使用的操作。 在该项目中,我们需要设计一个数据库模型来存储图书信息,并创建API来处理这些数据。借助Tkinter GUI工具包,我们可以显示API返回的数据,使用户能够以交互方式的方式查看和管理当前库存。 这个项目可以帮助我们学习Python编程、GUI设计、SQL数据库和API开发。此项目还可以用于学生、图书管理员和图书馆员等对图书库存进行日常管理。 ### 回答2: Python Tkinter是一个用于创建图形用户界面的Python库。数据库图书系统管理是一个用于管理图书馆或书店的图书信息和借阅记录的系统。 首先,我们需要创建一个图形用户界面,可以使用Tkinter库来实现。通过Tkinter,我们可以在窗口中添加各种组件,如标签、文本框、按钮等。我们可以使用标签来显示图书的相关信息,如书名、作者和出版日期等。然后,我们可以使用文本框来输入和修改图书信息。按钮可以用于触发各种操作,如添加新书籍、删除图书或更新图书信息。 其次,我们需要使用数据库来存储图书信息和借阅记录。可以使用SQLite来创建一个本地数据库文件。在数据库中,可以创建一个图书表,包含图书的各种属性,如书名、作者和出版日期。还可以创建一个借阅表,用于记录借阅记录,包括借阅日期、归还日期和借阅者信息。 然后,我们需要连接数据库并编写相关的操作函数。可以使用Python的SQLite库来实现数据库的连接和操作。通过这些函数,我们可以实现添加新书籍、删除图书和更新图书信息的功能。还可以实现查询图书信息和借阅记录的功能。 最后,将图形用户界面和数据库操作结合起来。通过按钮的点击事件,可以触发相应的数据库操作函数。通过文本框来获取用户输入的图书信息,并在标签中显示查询结果。 综上所述,Python Tkinter可以用于创建一个数据库图书系统管理的图形用户界面。通过连接数据库并编写相关操作函数,我们可以实现添加、删除、更新和查询图书信息的功能。这样的系统可以帮助管理图书馆或书店的图书,并记录借阅记录。 ### 回答3: Python Tkinter数据库图书系统管理是指使用Python编程语言Tkinter库来开发和管理一个图书系统的应用程序。 首先,需要使用Python中的数据库操作模块(如MySQLdb或sqlite3)连接到一个数据库,该数据库将用于存储图书系统的数据。可以创建一个名为Books的表,包含图书的相关信息,如书名、作者和价格等。 接着,使用Tkinter库来创建图书系统的用户界面。可以使用Tkinter提供的各种界面组件,如标签、文本框和按钮等,来创建一个交互式的界面。可以使用grid或pack等方法来布局界面,并为每个组件添加相应的功能。 在图书系统的界面中,可以添加按钮来执行不同的操作,如添加图书、删除图书、搜索图书等。当用户点击添加图书按钮时,可以弹出一个对话框,用户可以在该对话框中输入图书的相关信息,然后将该信息插入到数据库中的Books表中。 同样地,当用户点击删除图书按钮时,可以弹出一个对话框,用户可以在该对话框中输入要删除的图书的相关信息,然后将该信息从数据库中的Books表中删除。 另外,还可以添加一个搜索框,允许用户根据书名、作者或价格等条件来搜索图书。当用户点击搜索按钮时,可以从数据库中查询满足条件的图书,然后在界面中显示查询结果。 最后,在图书系统中,还可以添加一些其他的功能,如显示所有图书、修改图书信息等。这些功能的实现方式与上述操作类似,都是通过与数据库的交互来实现的。 总之,Python Tkinter数据库图书系统管理使用Python编程语言Tkinter库来实现一个完整的图书管理系统,它可以实现添加、删除、搜索以及其他常见的图书管理操作,为用户提供便捷的图书管理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值