(一)python tkinter GUI简单化编程之基础窗口


创作不易,请多包涵支持,谢谢!


python tkinter GUI简单化编程之文章目录(点击可传送)

python tkinter GUI简单化编程之文章目录


一、自我介绍及封装

GUI的全称是图形用户接口,是人与计算机沟通的桥梁。针对于python的GUI开发库需要大量时间学习及入门的缺点,本文将进行改进。也就是进行封装后给读者提供接口函数,是GUI编程傻瓜化,短短数分钟就可以建立你自己的GUI窗口,且自己的代码也可以变的简洁。本系列文章将先以封装python的tkinter库为目标进行讲解,后续将会再封装其他python的GUI库。现在让我们开始吧!


二、使用方法

通常python使用import载入自己需要的库,而载入的库可以是pip直接安装的库,也可以是自定义的库,随着自己的python脚本放置 。本文的库使用的就是自定义的库,这样做的好处可以让读者看过本文封装的库后再自定义更改。
首先创建一个文件夹,在文件夹中添加两个python文件,分别为test.pyw以及PythonGui.pywtest.pyw是测试封装库的脚本文件可以根据自己需要更改名称;PythonGui.pyw名称固定建议不要更改。至于为什么要使用.pyw的后缀名,可以阅读python封装exe可执行文件后屏蔽去除cmd黑色命令框解决方案


三、封装基础窗口

PythonGui.pyw的首行添加以下代码,首先import载入封装的tkinter以及要用的的其他库

import os
import sys
import tkinter as tk
import tkinter.ttk as ttk
from tkinter import messagebox

至于tkinter库中的控件如何使用,本文不再叙述,有很多重复的博文可以轻松查阅。然后在PythonGui.pyw再添加以下代码:

def A_建立根页面( 窗口属性, 图标属性 ):
    '''
    函数说明:\n\n
    窗口属性是一个列表,元素的意义分别为:0.根窗口名称 1.窗口宽度 2.窗口高度 3.背景颜色\n\n
    图标属性是一个.ico文件的路径,为空则使用默认图标\n\n
    '''
    界面GUI = tk.Tk()
    界面GUI.title(窗口属性[0])
    if len(窗口属性[3])>0:
        界面GUI.config(bg=窗口属性[3])
    if len(图标属性)>0:
        界面GUI.iconbitmap(图标属性)
    界面GUI.resizable(0,0)
    放置于屏幕宽度处 = 界面GUI.winfo_screenwidth()
    放置于屏幕高度处 = 界面GUI.winfo_screenheight()
    临时变量1 = int((放置于屏幕宽度处-窗口属性[1])/2)
    临时变量2 = int((放置于屏幕高度处-窗口属性[2])/2) 
    界面GUI.geometry(str(窗口属性[1])  +"x" + str(窗口属性[2]) +"+"+str(临时变量1)+"+"+str(临时变量2))
    def 退出(): 
        sys.exit()
    界面GUI.protocol('WM_DELETE_WINDOW', 退出)
    return 界面GUI

四、封装库的使用

在test.pyw中添加以下代码准备测试:

import PythonGui as GUI
主窗体 = GUI.A_建立根页面(['测试软件',800,500,'Beige'],'')
主窗体.mainloop() 

代码中A_建立根页面()函数中有两个形参分别为:1.窗口属性;2.图标属性。

其中,窗口属性是一个列表,元素的意义分别为:0.根窗口名称 1.窗口宽度 2.窗口高度 3.背景颜色;而图标属性是一个.ico文件的路径,为空则使用默认图标。

运行改程序可以生成一个800宽500高的GUI界面,其中界面的标题为"测试软件",背景颜色为’Beige’。至于图标形参为空,使用python-tkinter的默认图标。

程序最后一句主窗体.mainloop()是窗口消息循环,在窗口运行时,该行之后的代码不会运行。因此要想给窗口添加其他代码,请写在该行之前。
在这里插入图片描述


五、总结

本章节,介绍了如何封装tkinter库的方法。若有建议之处,麻烦在评论区指出,共同进步,谢谢。ps:平常加班较多,我会抽空余时间更新后面章节。(请做一个手勤的程序猿,哪怕再简单的代码,自己书写一遍胜过粘贴十遍)

猜你喜欢

转载自blog.csdn.net/baidu_37611158/article/details/108084333