python怎么做gui界面,python gui界面设计

大家好,本文将围绕python怎么做gui界面展开说明,python gui界面设计是一个很多人都想弄明白的事情,想搞清楚python编写gui界面需要先了解以下几个事情。

@Author:Runsen

现在极少有人会用上tkinter了,所以真正研究的人也就更少了,本来不想更新tkinter。看到很多人在学tkinter,其实用Python做布局,没有人这么干python简单代码案例。但还是更新几节tkinter,在Python从入门到大师教程中来。

tkinter

Tkinter包是Python附带的标准软件包,所以我们不需要安装任何东西就可以使用它。

窗口主体框架

每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性, 然后书写窗口内容, 最后执行window.mainloop让窗口活起来.

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('200x100')

# 这里是窗口的内容

window.mainloop()

复制代码

2a4d6259024be6fcfcf6bfe099d7490c.png

窗口内容

这次我们会建立一个用来描述的标签 tk.Label, 比如:

import tkinter as tk

window = tk.Tk()

window.title('my window')

window.geometry('200x100')

l = tk.Label(window,

text='OMG! this is TK!', # 标签的文字

bg='green', # 背景颜色

font=('Arial', 12), # 字体和字体大小

width=15, height=2 # 标签长宽

)

l.pack() # 固定窗口位置

window.mainloop()

复制代码

876b2cb91b734ccc47b37af0bb715ced.png

控件

上面的Label就是一个控件,还有很多的,如按钮,标签和文本框等,如下图所示

4f398945b92ae24aaffb2f77b9033d54.png

控件自带的共同属性,如大小,字体和颜色等。可根据控件展现形式选择相应的属性,具体属性如下表:

7aa48f4e5eb7682a51b7521d5e60403e.png

tkinter绑定事件

tkinter绑定事件,就是定义一个函数,然后通过command属性传入函数名,下面通过Button绑定事件,点击就出现Runsen爱学习

from tkinter import *

def p_label():

global root

Lb = Label(root, text='Runsen爱学习')

Lb.pack()

root = Tk()

root.title("应用程序窗口")

B_n = Button(root, text='点我', command=p_label, bg='red') # command后面不能有任何的标点符号

B_n.pack()

root.mainloop()

复制代码

cb2db9df25ceb76a8341f1c49605bea3.png

布局显示

一个窗口都应该有布局,就是pack的时候需要设置side,expand需要扩展吗,fill需要填充吗

from tkinter import *

root = Tk()

root.title("应用程序窗口")

Button(root,text='1').pack(side=LEFT,expand=YES,fill=Y)

Button(root,text='2').pack(side=TOP,expand=YES,fill=BOTH)

Button(root,text='3').pack(side=RIGHT,expand=YES,fill=NONE)

Button(root,text='4').pack(side=LEFT,expand=NO,fill=Y)

Button(root,text='5').pack(side=TOP,expand=YES,fill=BOTH)

Button(root,text='6').pack(side=BOTTOM,expand=YES)

Button(root,text='7').pack(anchor=SE)

root.mainloop()

复制代码

ca33523f69e50b27a735d7271daecdd8.png

除了pack还有一个grid,grid将组件布局为表格

下面做一个电话拨号盘GUI

from tkinter import *

root = Tk()

labels = [['1','2','3'], # 文本,布局为网格

['4','5','6'],

['7','8','9'],

['*','0','#']]

for r in range(4): # 行循环

for c in range(3): # 列循环

label = Label(root,

relief=RAISED, # 设置边框格式

padx=10, # 加宽标签

text=labels[r][c]) # 标签文本

label.grid(row=r, column=c) # 将标签放置在r行c列

root.mainloop()

复制代码

67000fb7e1fdfc21b69fa2d7e1b9eb8e.png

制作一个日历

上面教你做一个电话拨号盘GUI,下面能做一个简单的日历吗?

我看你就不会,不是我瞧不起你

5096ba58a0d550725065b32a898e475b.png

放心,有我在。这需要导入calendar模块了,

6bbdf1a611f8d8706157e5956f3e81d5.png

import calendar

from tkinter import *

root = Tk()

labels = [['Mon','Tue','Wed','Thu','Fri','Sat','Sun']]

MonthCal = calendar.monthcalendar(2020, 5)

for i in range(len(MonthCal)):

labels.append(MonthCal[i])

for r in range(len(MonthCal)+1):

for c in range(7):

if labels[r][c] == 0:

labels[r][c] = ' '

label = Label(root,

padx=5,

pady=5,

text=str(labels[r][c]))

label.grid(row=r,column=c)

root.mainloop()

复制代码

eef1c9f90e0c5b22b23088f324c8794a.png

丰富我们的日历

上面的日历就是一个辣鸡,啥功能都没有,需求很简单,就是来两个按钮实现向上翻,向下翻。

向上翻,向下翻两个按钮就需要清空界面,再把日历加到labels列表中 ,放置日历。好像很简单,其实就是这么简单。

大家想一想,怎么做出来。我还是给标准实现代码

# @Author: Runsen

import calendar

from tkinter import *

root = Tk()

def LabelCal(Year, Month):

# 首行放置“年、月”的位置

label = Label(root,text=str(Year)+"年")

label.grid(row=0,column=2)

label = Label(root,text=str(Month)+"月")

label.grid(row=0,column=4)

# labels列表:放置“星期”的标题

labels = [['Mon','Tue','Wed','Thu','Fri','Sat','Sun']]

# 用calendar库计算日历

MonthCal = calendar.monthcalendar(Year, Month)

# 先把界面清空

for r in range(7):

for c in range(7):

label = Label(root,

width =5,

padx=5,

pady=5,

text=' ')

label.grid(row=r+1,column=c)

# 把日历加到labels列表中

for i in range(len(MonthCal)):

labels.append(MonthCal[i])

# 放置日历

for r in range(len(MonthCal)+1):

for c in range(7):

if labels[r][c] == 0:

labels[r][c] = ' '

label = Label(root,

width =5,

padx=5,

pady=5,

text=str(labels[r][c]))

label.grid(row=r+1,column=c) # 网格布局

# 默认日期

Year, Month = 2020,5

LabelCal(Year, Month)

# button:Enter

def ButtonPrevious():

global Year, Month

Month = Month-1

if Month<1:

Month = Month+12

Year = Year-1

LabelCal(Year, Month)

button1 = Button(root, text='Previous', command=ButtonPrevious)

button1.grid(row=len(MonthCal)+3, column=0)

# button:Clear

def ButtonNext():

global Year, Month

Month = Month+1

if Month>12:

Month = Month-12

Year = Year+1

LabelCal(Year, Month)

button2 = Button(root, text='Next', command=ButtonNext)

button2.grid(row=len(MonthCal)+3, column=6)

root.mainloop()

复制代码

运行一波,来一个最终实现gif效果图。

e4c945941257b110fd67deb62a3699cc.gif

本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python有很多GUI库可供选择,包括Tkinter、PyQt、wxPython等,不同的GUI库适用于不同的开发需求和风格。 其中,Tkinter是Python自带的GUI库,使用简单,适合初学者入门。PyQt则是一个功能强大的GUI库,支持跨平台,有着丰富的文档和示例,但学习曲线较陡峭。wxPython也是跨平台的GUI库,基于C++编写,具有强大的可定制性和灵活性。 下面是一个简单的Tkinter GUI界面设计示例: ```python import tkinter as tk # 创建主窗口 root = tk.Tk() # 设置窗口标题 root.title("My GUI") # 设置窗口大小 root.geometry("400x300") # 创建Label组件 label = tk.Label(root, text="Hello, world!") label.pack() # 创建Button组件 button = tk.Button(root, text="Click me!") button.pack() # 进入主循环 root.mainloop() ``` 这段代码创建了一个简单的GUI界面,包括一个Label组件和一个Button组件。你可以根据自己的需求自定义界面布局和组件。 ### 回答2: Python GUI界面设计是利用Python编程语言以及相关的GUI库和框架来创建用户界面的过程。Python提供了一些流行的GUI库,例如Tkinter、PyQt、wxPython等,使开发者能够轻松创建具有图形用户界面的应用程序。 Python GUI界面设计的优点之一是它的简洁性和易用性。Python提供了简洁的语法和丰富的库,使得开发者能够快速构建用户友好的应用程序。其语法易于理解,使得代码的编写和维护更加容易。 另一个优点是Python GUI界面设计的跨平台性。由于Python是一种跨平台的编程语言开发的应用程序可以在不同的操作系统上运行,如Windows、Mac OS和Linux等。这使得开发者能够在各种平台上进行开发,并为用户提供统一的使用体验。 Python GUI界面设计还具有丰富的功能和灵活性。Python提供了许多GUI库和框架,这些库和框架提供了各种功能模块和工具,使开发者能够轻松实现按钮、标签、文本框、下拉菜单等常见的GUI组件。开发者也可以根据自己的需求自定义GUI组件,并结合其他Python库来实现更复杂的功能。 最后,Python GUI界面设计还具有较好的可扩展性和可维护性。由于Python具有清晰的结构和易于理解的语法,开发者可以更好地组织和管理代码。此外,Python的丰富的库和模块也使得开发者能够轻松地扩展和维护已有的应用程序。 总之,Python GUI界面设计是使用Python编程语言和相关GUI库创建用户友好的应用程序的过程。它的简洁性、跨平台性、功能丰富性以及可扩展性和可维护性使得它成为一种受欢迎的GUI开发方式。 ### 回答3: PythonGUI界面设计是通过使用各种GUI库来实现的,其中最常用的是Tkinter。下面我将简要介绍Python GUI界面设计的一些主要特点和用法。 首先,PythonGUI界面设计可以创建各种元素,如窗口、按钮、标签、文本框等。这些元素可以通过设定属性来自定义样式和行为。 其次,Tkinter提供了丰富的布局管理器,如Grid、pack和place。通过这些管理器,可以方便地调整元素在窗口中的位置和大小。 另外,PythonGUI界面设计支持事件驱动编程模式。通过绑定事件和编写相应的事件处理函数,可以实现响应用户操作的功能。例如,当用户点击按钮时,可以执行相应的操作。 此外,PythonGUI界面设计可以与其他Python库和模块进行集成。例如,可以使用matplotlib库在GUI界面中绘制图表,使用requests库进行网络请求,使用sqlite3库进行数据库操作等。 最后,PythonGUI界面设计也支持多线程编程。通过创建新的线程,可以在GUI界面中执行耗时操作,以避免界面的卡顿和不响应。 总之,PythonGUI界面设计提供了丰富的功能和灵活的使用方式,使开发者能够轻松地创建各种交互式的图形界面应用程序。无论是简单的小工具还是复杂的应用程序,Python都提供了足够的工具和库来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值