1、创建root:

  1. from tkinter import *
  2. root = Tk()
  3. root.title('GUI设计')
  4. # root.attributes("-alpha", 0.3)窗口透明度70 %
  5. # w, h = root.maxsize()
  6. # root.geometry('%dx%d+%d+%d' % (1675, 976, -14/2, 0/2)) # 初始大小和屏幕位置
  7. root.minsize(1024, 768) # 屏幕最小
  8. # root.resizable(width=False, height=False) # 宽不可变 高bu可变 默认True
  9. # 使用attributes()方法
  10. # root.attributes("-fullscreen", True) # 全屏显示
  11. root.mainloop()

2、将整个画布涂灰:

这里我选择用一个Frame组件frm1进行覆盖。

  1. frm1 = Frame(root, bg="#404040")
  2. frm1.grid(sticky=W+E+N+S)
  3. root.rowconfigure(0, weight=1)
  4. root.columnconfigure(0, weight=1)

如图:

3、再新建一个Frame组件frm2:

frm2为的,是将界面的小部件都放到其中,相当于一个容器。

  1. frm2 = Frame(frm1, width=750, height=600)
  2. frm2.grid(row=0, column=0)
  3. frm2.grid_propagate(0) # 父部件大小与子部件大小无关

如图:

那得把frm2组件居中啊,可是如果输入sticky=CENTER程序就会报错,我们只能曲线救国了。

  1. frm1.rowconfigure(0, weight=1)
  2. frm1.columnconfigure(0, weight=1)

如图:

搞定,继续下一步吧。

4、从效果图看,我们还得将frm2分成3行2列:

一Label二Label三Button

  1. logo_photo = PhotoImage(file='logo.png')
  2. Label(frm2,
  3. # text="一站式自助服务系统",
  4. justify=tkinter.CENTER,
  5. image=logo_photo,
  6. compound=tkinter.CENTER, # 关键:设置为背景图片
  7. # bg="blue",
  8. # font=("华文行楷", 30), # 字体和字号
  9. # fg="white"
  10. borderwidth=0,
  11. ).grid(row=0, column=0, columnspan=2) # 前景色
  12. Label(frm2, height=6, text='一站式自助服务系统', font=('华文行楷', 30)).grid(row=1, column=0, columnspan=2)
  13. gh_photo = PhotoImage(file='guahao.png')
  14. cx_photo = PhotoImage(file="chaxun.png")
  15. Button(frm2, image=gh_photo, compound='top', text='当日挂号>', font=("华文楷书", 20), relief="ridge", borderwidth=12, width=128, height=102, bg="White", command=registerinterface).grid(row=2, column=0)
  16. Button(frm2, image=cx_photo, compound='top', text='明细查询>', font=("华文中宋", 20), relief="ridge", borderwidth=12, width=128, height=102, bg='#D3D3D3', command=inquiryinterface).grid(row=2, column=1) # 按钮

如图:

5、再加个隐形的“退出”按钮吧:

因为在全屏状态下只能从任务管理器关闭略显麻烦。

  1. Button(frm2, width=8, height=2, text='EXIT', fg='white', borderwidth=0, command=root.destroy).grid(row=3, column=1, pady=114, sticky=E+S)

如图:

上图的“EXIT”只有在鼠标点击时才会出来呦~~

 

搞定,溜了溜了。

tkinter——GUI设计实操的更多相关文章

  1. 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序

    最近通过 PyQt5 设计了一个下载服务器指定日期日志文件的程序,里面有些有意思的技术点,现在做一些分享. PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI ...

  2. tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面

    PyQt实现界面与逻辑分离的设计很是方便,详情可以见我的第一篇博文. 不过本文将使用python的标准库 tkinter,来实现界面与逻辑分离的GUI 设计. 我们来设计一个很简单的程序: 目的:长度 ...

  3. kettle安装部署基本操作及实操文档

    一.kettle是什么? Kettle,简称ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),是一款国外开源的ETL工具,纯Java编写,可以在Window. ...

  4. SBT实操指南

    参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...

  5. linux基础实操四

    实操一: 1)为新加的硬盘分区,一个主分区大小为10剩余空间给扩展分区,在扩展分区上划分2个逻辑分别为5G 2)式化主分区为ext3系统 #mkfs.ext3 /dev/sdb1 3 将逻辑分区设置为 ...

  6. 南方IT学校期末PCB结课项目考试(实操)说明书

    南方IT学校期末结课项目考试(实操)说明书(一) 课程:<印制电路板设计技术>(二) 项目:笔记本电脑电源适配器的印制电路板设计(三) 背景说明:如今笔记本已经进入千家万户,作为给电脑充电 ...

  7. 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...

  8. 动手实操:如何用 Python 实现人脸识别,证明这个杨幂是那个杨幂?

    当前,人脸识别应用于许多领域,如支付宝的用户认证,许多的能识别人心情的 AI,也就是人的面部表情,还有能分析人的年龄等等,而这里面有着许多的难度,在这里我想要分享的是一个利用七牛 SDK 简单的实现人 ...

  9. 第十章 Fisco Bcos 权限控制下的数据上链实操演练

    一.目的 前面已经完成fisco bcos 相关底层搭建.sdk使用.控制台.webase中间件平台等系列实战开发, 本次进行最后一个部分,体系化管理区块链底层,建立有序的底层控管制度,实现权限化管理 ...

随机推荐

  1. linux运维工程师面试题收集

    面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...

  2. mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)

    1. 查看权限 -- 如果host值不是%, 就要加上host值,下面查看bkpuser用户权限(6个权限, 限本地连接) SHOW GRANTS FOR bkpuser@localhost; -- ...

  3. Android--UI之Button

    前言 最近一直在讲androidUI控件的使用方式,这篇博客讲解一下基本上属于用处最广泛的控件之一的Button控件.如果有过其他平台开发经验的程序员,对按钮是不会陌生的.本篇博客首先讲解一下Andr ...

  4. Pulsar Consumer实现介绍

    Pulsar-Consumer “Pulsar is a distributed pub-sub messaging platform with a very flexible messaging m ...

  5. PYTHON 中 SQL 带参数

    使用 PYTHON 的字符串填充方式 import mysql.connector sql = 'select \* from school.student where age > {age} ...

  6. 十分钟了解ZAB(Zookeeper Atomic Broadcast)协议

    Zookeeper基于ZAB(Zookeeper Atomic Broadcast),实现了主备模式下的系统架构,保持集群中各个副本之间的数据一致性. ZAB协议定义了选举(election).发现( ...

  7. Redis基础认识及常用命令使用(一)--技术流ken

    Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...

  8. backbond Model方法(set)

    backbond的Model,其中存在一些操作属性的方法,而在这些方法中,最重要的就是set方法,其余的方法大部分都基于这个方法实现的,在backbond开发版中,也说了该方法是model中的核心方法 ...

  9. Linux CentOS 虚拟机下联网

    这里用VM 提供虚拟环境 虚拟机网络连接模式用的NAT 在编辑处 打开 查看你的子网ip  类型是NAT 的 我们这是是18   192.168.18.~ 去看dhcp 设置看自动分配的地址范围 也可 ...

  10. IE console.log 调试状态

    最近项目遇到问题,发现alert一个弹窗,在IE中,打开开发人员工具后,可以弹出,但是不打开无法弹出,最后发现是console.log的原因,注释掉console相关的代码,问题就解决了 有些版本的I ...