用python写一个图形界面

229 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

准备工作

我今天用的是windows(用Mac出了点问题)。组件库依旧用到昨天的tkinter和类。

代码展示

from tkinter import *
import tkinter.filedialog
import tkinter.colorchooser
class myWindow:
    def __init__(self):
        self.root = Tk()
        self.root.title("新建窗体实验")
        self.root.geometry("320x240")
        self.root.resizable(False,False)
        lb1 = Label(self.root,text='主窗体',font=('黑体',32,'bold'))
        lb1.place(relx=0.2,rely=0.2)
        mainmenu = Menu(self.root)
        menuFile = Menu(mainmenu)
        mainmenu.add_cascade(label='菜单',menu=menuFile)
        menuFile.add_command(label='新窗体',command=self.newWindow)
        menuFile.add_separator()
        menuFile.add_command(label='文件选择',command=self.filedialog)
        menuFile.add_separator()
        menuFile.add_command(label='颜色选择',command=self.colordialog)
        menuFile.add_separator()
        menuFile.add_command(label='退出',command=self.root.destroy)
        self.root.config(menu=mainmenu)

    def newWindow(self):
        winNew = Toplevel(self.root)
        winNew.geometry('320x240')
        winNew.title('新窗体')
        lb2 = Label(winNew, text='我在新窗体上')
        lb2.place(relx=0.2, rely=0.2)
        btClose = Button(winNew, text='关闭', command=winNew.destroy)
        btClose.place(relx=0.7, rely=0.5)

    def filedialog(self):
        tkinter.filedialog.askopenfilename()

    def colordialog(self):
        tkinter.colorchooser.askcolor()
if __name__ == '__main__':
    test = myWindow()

结果展示

主页面

WechatIMG2230.png

菜单

WechatIMG2231.png

新窗体

WechatIMG2232.png

文件选择

WechatIMG1006.jpeg

颜色选择

WechatIMG2234.png

浅分析一下

导入组件库

from tkinter import *
import tkinter.filedialog
import tkinter.colorchooser

导入tkinter组件的全部组件,引用文件选择(filedialog )选择文件对话框的格式和颜色选择( colorchooser)颜色对话框。

创建主窗体

 def __init__(self):
        self.root = Tk()
        self.root.title("新建窗体实验")
        self.root.geometry("320x240")
        self.root.resizable(False,False)
        lb1 = Label(self.root,text='主窗体',font=('黑体',32,'bold'))
        lb1.place(relx=0.2,rely=0.2)
        mainmenu = Menu(self.root)
        menuFile = Menu(mainmenu)
        mainmenu.add_cascade(label='菜单',menu=menuFile)  #增加多级下拉菜单
        menuFile.add_command(label='新窗体',command=self.newWindow)
        menuFile.add_separator()
        menuFile.add_command(label='文件选择',command=self.filedialog)
        menuFile.add_separator()
        menuFile.add_command(label='颜色选择',command=self.colordialog)
        menuFile.add_separator()
        menuFile.add_command(label='退出',command=self.root.destroy)
        self.root.config(menu=mainmenu)
  • 创建窗体 给窗体命名为“新建窗体实验”,设置窗口为320x240的大小,限制它不能缩放。在窗体中间设置标签,标签内容为“主窗体”,字体为“黑体”,字号为“32”,加粗。设置该标签在距窗体左上角位置边框的0.2处(我这样说可能有点懵),画图展示一下。
WechatIMG1007.jpeg
  • 创建菜单

add_cascade表示创建多级菜单,menu表示创建下拉菜单。因为菜单目前是空的,所以我们要添加数据。

add_command添加命令,创建标签并命令它执行对应的函数或命令。 add_separator()表示分割线。重复几次操作,config将菜单配置上去,菜单就叫建成了。

新建窗体

def newWindow(self):
        winNew = Toplevel(self.root)
        winNew.geometry('320x240')
        winNew.title('新窗体')
        lb2 = Label(winNew, text='我在新窗体上')
        lb2.place(relx=0.2, rely=0.2)
        btClose = Button(winNew, text='关闭', command=winNew.destroy)
        btClose.place(relx=0.7, rely=0.5)

和创建主窗体一样,需要定义窗体的大小和名称,设置'我在新窗体上'这个标签的位置,设置'关闭'这个标签的位置且执行关闭新窗口的命令。

引入文件选择和颜色选择

 def filedialog(self):
        tkinter.filedialog.askopenfilename()

 def colordialog(self):
        tkinter.colorchooser.askcolor()

前方按钮连接到此处函数体,使其可以选择电脑的文件和颜色选择页面。这两个是电脑自身的,函数处引用即可。

疑惑

因为我一直用的是Mac,但是我按照这个办法以用Mac是不好用的。目前没有找到,等我研究明白后分分享给大家。