返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础学习之GUI对话框的示例分析
  • 496
分享到

Python基础学习之GUI对话框的示例分析

2023-06-15 07:06:32 496人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍Python基础学习之GUI对话框的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、漂亮的标签图和按钮图这个标签的设置config,如果熟悉office的操作,应该是一件不太难的事情。仿照文

这篇文章主要介绍Python基础学习之GUI对话框的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、漂亮的标签图和按钮图

这个标签的设置config,如果熟悉office的操作,应该是一件不太难的事情。仿照文本的字体,颜色,字号,还有标签的高度宽度等等,做一个标签的仿本py文件如下:
文件在我的pywenjianjia之下。

from tkinter import *root = Tk()labelfont = ('times', 28, 'bold')widget = Label(root, text='Hello tkinter world, I came here!')widget.config(bg='black', fg='yellow')widget.config(font=labelfont)widget.config(height=5, width=40)widget.pack(expand=YES, fill=BOTH)root.mainloop()

在atom的packages中点python runner执行这个文件,于是就出现

Python基础学习之GUI对话框的示例分析

如果你想做个还有点动态的按钮图片,可以使用button.py文件,也是来一个仿制的py文件。

在from tkinter import *widget = Button(text='BUTTON', padx=20, pady=20)widget.pack(padx=30, pady=30)widget.config(cursor='gumby')widget.config(bd=8, relief=RAISED)widget.config(bg='dark green', fg='white')widget.config(font=('helvetica', 24, 'underline italic'))mainloop()

在atom的packages中点Python runner执行这个文件,于是就出现:
一个漂亮的、彩色的、而且可按动的按钮图片。

Python基础学习之GUI对话框的示例分析

二、窗口协议与窗口顶层

早年写那本《创新思维》教材时,学习visio画图花了点功夫,那时佩服visio软件在平面上的分层功夫。也就一个只给你平面感的屏幕,却可以画出很多奇奇怪怪的东西,还可以一层一层地叠放,并配置以不同的色彩。编程学到这里,过去那种怪怪的感觉因为这么多年计算机技术的不断升级,好多让你奇异的东西,早被更多超越给冲淡了。但你还是要为接触GUI的图片来一点惊喜感,而且还让你知道,这个魔幻平面的屏幕,还有相应的协议在发挥作用。我原以为,这个协议称为协议,一定有个协议各方的约定,是个超越GUI之外的东西呢,原来也是一个py代码的GUI文件。
而且,这个文件还有一个怪异,按照教材中的安排,你想去执行它,文件就显示有误。但试探着种种办法好像依然有误。回看教材文本,在窗口图标那一节似乎有个暗示,干脆去掉那个iconbitmap代码行,也就是去掉那个18行代码,文件就可以执行了。

展示文件的注释有点协议文本的味道,这大概就是协议的主要内容吧。我先给出总共28行的代码文件。

"""弹出三个窗口,destroy()会停止一个窗口,quit()则停止所有窗口.顶层窗口有标题、图标、协议等等,总是会有一个应用程序窗口。顶层窗口都是容器,但不会封装/网格化。toplevel就像frame,它是新窗口且包含一个菜单。"""from tkinter import *root = Tk()    #显示根窗口trees = [('The tkinter 之旅!',        'light blue'),        ('The Paint!',          'light green'),        ('The Giant wetearth !', 'red')]for(tree, color) in trees:    win = Toplevel(root)                              #新建窗口    win.title('Sing...')                              #设置边框    win.protocol('WM_DELETE_WINDOW', lambda:None)     #忽略关闭    win.iconbitmap('py-blue-trans-out.ico')           #非红色Tk,有这一行则不运行    msg = Button(win, text=tree, command=win.destroy) #关闭一个win    msg.pack(expand=YES, fill=BOTH)    msg.config(padx=10, pady=10, bd=10, relief=RAISED)    msg.config(bg='black', fg=color, font=('times', 30, 'bold italic'))root.title('Lumberjack demo')Label(root, text='Main window', width=30).pack()Button(root, text='Quit All', command=root.quit).pack() #终止所有程序root.mainloop()

执行这个文件,出现以下结果:

Traceback (most recent call last):  File "C:\Users\zzx21\GUI\Tour\toplevel2.py", line 18, in <module>    win.iconbitmap('py-blue-trans-out.ico')           #非红色Tk,有这一行则不运行  File "C:\Users\zzx21\pywenjianjia\lib\tkinter\__init__.py", line 2080, in wm_iconbitmap    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)_tkinter.TclError: bitmap "py-blue-trans-out.ico" not definedC:\Users\zzx21\GUI\Tour>

现在去掉行18,三个窗口按钮全出现了,还外带一个quit图标。使用shell的移动提示符,这些文件可以移动到屏幕上你想放置的地方,有点意思。

Python基础学习之GUI对话框的示例分析

三、标准对话框是模态对话框

计算机语言也常常使用逻辑学的一些术语,tkinter之旅中讲到的对话框,竟然有模态对话框和非模态对话框之说。这好像在拉近py语言和逻辑之间的距离,让人有一点缘分之感。你只要对现代逻辑历史稍有理解就知道,20世纪初成熟的现代逻辑,到了20年代,出现了和经典逻辑有点变异的逻辑,那就是非经典的模态逻辑,美国学者C.I.刘易斯构造了严格蕴涵系统的S1-S5,现在所说的模态逻辑就产生了,学名就叫modal logic。而对话框中提到的模态对话框与非模态对话框中的模态一词的英文,就是这个modal。但深入一点,好像这里的模态modal和逻辑的modal并没有什么关联,只是在用词上的一个巧合吧。
沿着教材的思路,先把标准对话框做个基本了解,大概能说明这种巧合。
标准对话框也称通用对话框,这样的对话框也是模态的。这里modal的意思是:这样的对话框会阻止其它界面,这些界面只有在用户关闭该对话框的时候才可能返回。所以,所谓标准对话框或者模态对话框,只要它在屏幕上出现,就把其它的窗口界面给强制挡住了。为什么这就是modal的,按我对于modal的理解,好像一点modal的含义都没有。因为逻辑中的模态总是指的互为定义的模态词,例如必然与可能,应该与禁止等等,好像没有这里的行为意义。且让我们用实例的模态对话框,来表明它的含义吧。虽然modal在这里的含义有点模糊,但实例的出现会消解我们对它的迷惑。很可能python中的模态和逻辑的模态就不是一回事,一种语词使用的巧合罢了。
标准对话框dIg1.pyw,

from tkinter import *from tkinter.messagebox import *def callback():    if askyesno('Verify', 'Do you really want to quit?'):        showwarning('Yes', 'Quit not yet implemented')    else:        showinfo('No', 'Quit has been cancellled')errmsg = 'Sorry, no Spam allowed!'Button(text='退出', command=callback).pack(fill=X)Button(text='垃圾', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)mainloop()

我用中文按钮替换英文按钮,出现了中文的对话框。这些对话框按钮是可以按动然后给出选择的,如下两图。
按退出有如下选择

Python基础学习之GUI对话框的示例分析

按垃圾有如下选择

Python基础学习之GUI对话框的示例分析

四、标准对话框的多栏使用

先做出一个回调演示表的py文件,它可以作为模块反复使用,这就使得对话框的制作多样化起来。我依然把这些对话框的按钮用中文标识,然后再做一个多重的按钮栏文件,于是你看到一个更多功能的对话框图。一个可以打开文件,选择颜色,输入字符等等的对话框。把所有代码的功能全都理解清楚,还没有到火候,但终于可以照葫芦画瓢地把这些图框及其作用显示出来了。
演示按钮集合的py文件demoDIg.py

from tkinter import *from dialogTable import demosfrom quitter import Quitterclass Demo(Frame):    def __init__(self, parent=None, **options):        Frame.__init__(self, parent, **options)        self.pack()        Label(self, text='Basic demos').pack()        for (key, value) in demos.items():            Button(self, text=key, command=value).pack(side=TOP, fill=BOTH)        Quitter(self).pack(side=TOP, fill=BOTH)if __name__=='__main__': Demo().mainloop()

执行这个文件,于是出现按钮栏对话框

Python基础学习之GUI对话框的示例分析

如果点打开按钮,则打开了window的文档文件

Python基础学习之GUI对话框的示例分析

如果点击颜色,则可在颜色框中选择颜色。

Python基础学习之GUI对话框的示例分析

如果点击输入,则可在输入框中按要求输入数字。

Python基础学习之GUI对话框的示例分析

这个对话框的初步理解,颇有点开人眼界。作为计算机科学中的python语言,真有超越自然语言的诸多功能。冲着这一点,这个编程语言再难,也得一点一点地坚持学下去。

以上是“Python基础学习之GUI对话框的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网Python频道!

--结束END--

本文标题: Python基础学习之GUI对话框的示例分析

本文链接: https://lsjlt.com/news/278364.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python基础学习之GUI对话框的示例分析
    这篇文章主要介绍Python基础学习之GUI对话框的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、漂亮的标签图和按钮图这个标签的设置config,如果熟悉office的操作,应该是一件不太难的事情。仿照文...
    99+
    2023-06-15
  • Python基础学习之奇异的GUI对话框
    目录一、漂亮的标签图和按钮图二、窗口协议与窗口顶层三、标准对话框是模态对话框四、标准对话框的多栏使用一、漂亮的标签图和按钮图 这个标签的设置config,如果熟悉office的操作,应该是一件不太难的事情。仿照文本的...
    99+
    2022-06-02
    Python GUI对话框 python tkinter
  • Angular.js基础学习之初始化的示例分析
    这篇文章将为大家详细讲解有关Angular.js基础学习之初始化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、绑定初始化,自动加载通过绑定来进行angula...
    99+
    2024-04-02
  • Java基础之MapReduce框架的示例分析
    小编给大家分享一下Java基础之MapReduce框架的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、MapTask工作机制MapTask就是Map阶...
    99+
    2023-06-15
  • Android对话框AlertDialog的示例分析
    这篇文章将为大家详细讲解有关Android对话框AlertDialog的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。AlertDialog可以在当前的界面上显示一个对话框,这个对话框是置顶于所有...
    99+
    2023-06-22
  • layer.js之回调销毁对话框的示例分析
    这篇文章给大家分享的是有关layer.js之回调销毁对话框的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。layer.js弹出层给我们封装了基本的销毁按钮,如图所示:当我...
    99+
    2024-04-02
  • Python基础之进程的示例分析
    这篇文章将为大家详细讲解有关Python基础之进程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言进程,一个新鲜的字眼,可能有些人并不了解,它是系统某个运行程序的载体,这个程序可以有单个或...
    99+
    2023-06-15
  • Python基础之模块的示例分析
    这篇文章给大家分享的是有关Python基础之模块的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是模块容器 -> 数据的封装函数 -> 语句的封装类 -> 方法和属性的封装模块 ...
    99+
    2023-06-15
  • Git基础学习之分支操作的示例详解
    目录1.新建一个分支并且使分支指向指定的提交对象2.思考3.项目分叉历史的形成4.分支的总结1.新建一个分支并且使分支指向指定的提交对象 使用命令:git branch branch...
    99+
    2022-11-13
    Git分支基本操作 Git分支操作 Git基础学习
  • Python全栈之学习JQuery的示例分析
    这篇“Python全栈之学习JQuery的示例分析”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Python全栈之学习JQuery的示例分析”,小编整理了以下知识点,请大家跟着小编的步伐一步一...
    99+
    2023-06-29
  • Python全栈之学习HTML的示例分析
    这篇“Python全栈之学习HTML的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“Python全栈之学习HTML的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇...
    99+
    2023-06-29
  • java基础之方法与对象的示例分析
    这篇文章主要介绍java基础之方法与对象的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、方法的基本定义限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法由主方法直接调用。方法是指就是一段可以被重复...
    99+
    2023-06-20
  • Java基础之Maven的示例分析
    这篇文章将为大家详细讲解有关Java基础之Maven的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Maven是什么?Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的...
    99+
    2023-06-15
  • java基础之this的示例分析
    小编给大家分享一下java基础之this的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、this关键字首先需要提醒的是,在整个Java之中,this是...
    99+
    2023-06-20
  • python基础之Socket套接字的示例分析
    这篇文章给大家分享的是有关python基础之Socket套接字的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不...
    99+
    2023-06-14
  • Python入门之基础语法的示例分析
    这篇文章将为大家详细讲解有关Python入门之基础语法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.p...
    99+
    2023-06-15
  • Python爬虫基础之请求的示例分析
    小编给大家分享一下Python爬虫基础之请求的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、请求目标(URL)URL又叫作统一资源定位符,是用于完整地...
    99+
    2023-06-15
  • Android之复选框对话框用法实例分析
    本文实例讲述了Android之复选框对话框用法。分享给大家供大家参考。具体如下: main.xml布局文件 <?xml version="1.0" encod...
    99+
    2022-06-06
    复选框 Android
  • Javascript基础之类型的示例分析
    这篇文章主要介绍了Javascript基础之类型的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本类型  Javascript有5...
    99+
    2024-04-02
  • java基础之string类的示例分析
    这篇文章主要为大家展示了“java基础之string类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java基础之string类的示例分析”这篇文章吧。1、String类1.1两种对象...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作