python tkinter 桌面小程序开发从入门到界面美化(主题应用推荐)

您所在的位置:网站首页 python开发小程序代码 python tkinter 桌面小程序开发从入门到界面美化(主题应用推荐)

python tkinter 桌面小程序开发从入门到界面美化(主题应用推荐)

2024-07-08 18:47| 来源: 网络整理| 查看: 265

文章目录 前言一、Python GUI 编程可选方案有哪些二、基础入门1. 装载库2. 最简单的结构2.1 图片显示的例子2.2 PanedWindow的例子2.3 背景色选择的例子 三、主题选择3.2 Sun-Valley-ttk-theme3.2 ttkbootstrap 总结

前言

推荐链接:

Python中文开发手册 ttk(Tk)Python GUI编程(Tkinter)|菜鸟教程Tkinter(28)标签部件 ttk.labeltkinter图形界面开发

上述链接用于弥补属性知识了解不充分及组件介绍,用于查阅.

一、Python GUI 编程可选方案有哪些

Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:

Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

提示:我们本篇文章要讲的则是tkinter

二、基础入门 1. 装载库 pip install tkinter 2. 最简单的结构 import tkinter as tk root = tk.Tk() root.mainloop()

在这里插入图片描述

2.1 图片显示的例子 import tkinter import tkinter.messagebox from PIL import Image, ImageTk def get_image(filename,width,height): im = Image.open(filename).resize((width,height)) return ImageTk.PhotoImage(im) # 用构造方法Tk()创建主窗口容器。 root = tkinter.Tk() # 设置窗口标题 root.title("background example") # 设置窗口尺寸及初始化位置 root.geometry('800x600+300+150') root.resizable(False,False) # 画布控件;显示图形元素如线条或文本 canvas_root = tkinter.Canvas(root,width=800,height=600) # 获取图像 im_root=get_image("bigsur.png",800,600) canvas_root.create_image(400,300,image=im_root) # 标签控件 #--------------------------------------------------------------------------------------------------------------------------------------------------------- # 画布 内容 对准方式 控件背景 #关键:设置为背景图片 字体 前景色 #--------------------------------------------------------------------------------------------------------------------------------------------------------- Label_root = tkinter.Label(root,text="我是内容,\n请你阅读",justify=tkinter.LEFT,image = im_root,compound = tkinter.CENTER,font=("华文行楷",20),fg = "white") Label_root.pack() # 画布控件以包裹方式添加进窗口 canvas_root.pack() # 执行消息循环,相当于while循环,则之后的代码不被执行 root.mainloop()

在这里插入图片描述

2.2 PanedWindow的例子

下述引用另一位博主的例子

版权声明:本文为CSDN博主「视觉智能」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wujuxKkoolerter/article/details/123767781

效果如下: 在这里插入图片描述 完整代码如下:

import tkinter as tk from tkinter import ttk root = tk.Tk() root.title('PanedWindow Demo') root.geometry('300x200') # change style to classic (Windows only) # to show the sash and handle style = ttk.Style() style.theme_use('classic') # paned window pw = ttk.PanedWindow(orient=tk.HORIZONTAL) # Left listbox left_list = tk.Listbox(root) left_list.pack(side=tk.LEFT) pw.add(left_list) # Right listbox right_list = tk.Listbox(root) right_list.pack(side=tk.LEFT) pw.add(right_list) # place the panedwindow on the root window pw.pack(fill=tk.BOTH, expand=True) root.mainloop() # Tkinter基础 Button bg 设置按钮的背景颜色 import tkinter as tk class App(): def __init__(self, master): frame = tk.Frame(master) frame.pack() self.testButton = tk.Button(frame, text = "hello", fg = "red", bg = "blue", command = self.testPrint) self.testButton.pack() def testPrint(self): print("test") root = tk.Tk() app = App(root) root.mainloop() 2.3 背景色选择的例子

版权声明:本文为CSDN博主「chl0000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/chl0000/article/details/7657887

效果如下: 在这里插入图片描述

代码如下:

from tkinter import * colors = '''#FFB6C1 LightPink 浅粉红 #FFC0CB Pink 粉红 #DC143C Crimson 深红/猩红 #FFF0F5 LavenderBlush 淡紫红 #DB7093 PaleVioletRed 弱紫罗兰红 #FF69B4 HotPink 热情的粉红 #FF1493 DeepPink 深粉红 #C71585 MediumVioletRed 中紫罗兰红 #DA70D6 Orchid 暗紫色/兰花紫 #D8BFD8 Thistle 蓟色 #DDA0DD Plum 洋李色/李子紫 #EE82EE Violet 紫罗兰 #FF00FF Magenta 洋红/玫瑰红 #FF00FF Fuchsia 紫红/灯笼海棠 #8B008B DarkMagenta 深洋红 #800080 Purple 紫色 #BA55D3 MediumOrchid 中兰花紫 #9400D3 DarkViolet 暗紫罗兰 #9932CC DarkOrchid 暗兰花紫 #4B0082 Indigo 靛青/紫兰色 #8A2BE2 BlueViolet 蓝紫罗兰 #9370DB MediumPurple 中紫色 #7B68EE MediumSlateBlue 中暗蓝色/中板岩蓝 #6A5ACD SlateBlue 石蓝色/板岩蓝 #483D8B DarkSlateBlue 暗灰蓝色/暗板岩蓝 #E6E6FA Lavender 淡紫色/熏衣草淡紫 #F8F8FF GhostWhite 幽灵白 #0000FF Blue 纯蓝 #0000CD MediumBlue 中蓝色 #191970 MidnightBlue 午夜蓝 #00008B DarkBlue 暗蓝色 #000080 Navy 海军蓝 #4169E1 RoyalBlue 皇家蓝/宝蓝 #6495ED CornflowerBlue 矢车菊蓝 #B0C4DE LightSteelBlue 亮钢蓝 #778899 LightSlateGray 亮蓝灰/亮石板灰 #708090 SlateGray 灰石色/石板灰 #1E90FF DodgerBlue 闪兰色/道奇蓝 #F0F8FF AliceBlue 爱丽丝蓝 #4682B4 SteelBlue 钢蓝/铁青 #87CEFA LightSkyBlue 亮天蓝色 #87CEEB SkyBlue 天蓝色 #00BFFF DeepSkyBlue 深天蓝 #ADD8E6 LightBlue 亮蓝 #B0E0E6 PowderBlue 粉蓝色/火药青 #5F9EA0 CadetBlue 军兰色/军服蓝 #F0FFFF Azure 蔚蓝色 #E0FFFF LightCyan 淡青色 #AFEEEE PaleTurquoise 弱绿宝石 #00FFFF Cyan 青色 #00FFFF Aqua 浅绿色/水色 #00CED1 DarkTurquoise 暗绿宝石 #2F4F4F DarkSlateGray 暗瓦灰色/暗石板灰 #008B8B DarkCyan 暗青色 #008080 Teal 水鸭色 #48D1CC MediumTurquoise 中绿宝石 #20B2AA LightSeaGreen 浅海洋绿 #40E0D0 Turquoise 绿宝石 #7FFFD4 Aquamarine 宝石碧绿 #66CDAA MediumAquamarine 中宝石碧绿 #00FA9A MediumSpringGreen 中春绿色 #F5FFFA MintCream 薄荷奶油 #00FF7F SpringGreen 春绿色 #3CB371 MediumSeaGreen 中海洋绿 #2E8B57 SeaGreen 海洋绿 #F0FFF0 Honeydew 蜜色/蜜瓜色 #90EE90 LightGreen 淡绿色 #98FB98 PaleGreen 弱绿色 #8FBC8F DarkSeaGreen 暗海洋绿 #32CD32 LimeGreen 闪光深绿 #00FF00 Lime 闪光绿 #228B22 ForestGreen 森林绿 #008000 Green 纯绿 #006400 DarkGreen 暗绿色 #7FFF00 Chartreuse 黄绿色/查特酒绿 #7CFC00 LawnGreen 草绿色/草坪绿 #ADFF2F GreenYellow 绿黄色 #556B2F DarkOliveGreen 暗橄榄绿 #9ACD32 YellowGreen 黄绿色 #6B8E23 OliveDrab 橄榄褐色 #F5F5DC Beige 米色/灰棕色 #FAFAD2 LightGoldenrodYellow 亮菊黄 #FFFFF0 Ivory 象牙色 #FFFFE0 LightYellow 浅黄色 #FFFF00 Yellow 纯黄 #808000 Olive 橄榄 #BDB76B DarkKhaki 暗黄褐色/深卡叽布 #FFFACD LemonChiffon 柠檬绸 #EEE8AA PaleGoldenrod 灰菊黄/苍麒麟色 #F0E68C Khaki 黄褐色/卡叽布 #FFD700 Gold 金色 #FFF8DC Cornsilk 玉米丝色 #DAA520 Goldenrod 金菊黄 #B8860B DarkGoldenrod 暗金菊黄 #FFFAF0 FloralWhite 花的白色 #FDF5E6 OldLace 老花色/旧蕾丝 #F5DEB3 Wheat 浅黄色/小麦色 #FFE4B5 Moccasin 鹿皮色/鹿皮靴 #FFA500 Orange 橙色 #FFEFD5 PapayaWhip 番木色/番木瓜 #FFEBCD BlanchedAlmond 白杏色 #FFDEAD NavajoWhite 纳瓦白/土著白 #FAEBD7 AntiqueWhite 古董白 #D2B48C Tan 茶色 #DEB887 BurlyWood 硬木色 #FFE4C4 Bisque 陶坯黄 #FF8C00 DarkOrange 深橙色 #FAF0E6 Linen 亚麻布 #CD853F Peru 秘鲁色 #FFDAB9 PeachPuff 桃肉色 #F4A460 SandyBrown 沙棕色 #D2691E Chocolate 巧克力色 #8B4513 SaddleBrown 重褐色/马鞍棕色 #FFF5EE Seashell 海贝壳 #A0522D Sienna 黄土赭色 #FFA07A LightSalmon 浅鲑鱼肉色 #FF7F50 Coral 珊瑚 #FF4500 OrangeRed 橙红色 #E9967A DarkSalmon 深鲜肉/鲑鱼色 #FF6347 Tomato 番茄红 #FFE4E1 MistyRose 浅玫瑰色/薄雾玫瑰 #FA8072 Salmon 鲜肉/鲑鱼色 #FFFAFA Snow 雪白色 #F08080 LightCoral 淡珊瑚色 #BC8F8F RosyBrown 玫瑰棕色 #CD5C5C IndianRed 印度红 #FF0000 Red 纯红 #A52A2A Brown 棕色 #B22222 FireBrick 火砖色/耐火砖 #8B0000 DarkRed 深红色 #800000 Maroon 栗色 #FFFFFF White 纯白 #F5F5F5 WhiteSmoke 白烟 #DCDCDC Gainsboro 淡灰色 #D3D3D3 LightGrey 浅灰色 #C0C0C0 Silver 银灰色 #A9A9A9 DarkGray 深灰色 #808080 Gray 灰色 #696969 DimGray 暗淡灰 #000000 Black 纯黑''' root = Tk() i = 0 colcut = 5 for color in colors.split('\n'): sp = color.split(' ') try: Label(text=color, bg=sp[1]).grid(row=int(i/colcut),column=i%colcut, sticky=W+E+N+S) except : print('err',color) Label(text='ERR'+color).grid(row=int(i/colcut),column=i%colcut, sticky=W+E+N+S) i += 1 root.mainloop() 三、主题选择

tkinter默认的样式太丑

3.2 Sun-Valley-ttk-theme

https://github.com/rdbende/Sun-Valley-ttk-theme 请添加图片描述

3.2 ttkbootstrap

https://github.com/israel-dryer/ttkbootstrap 在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了tkinter的使用及主题推荐,具体使用方法可以参考git相关example



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3