Python之GUI编程

这篇具有很好参考价值的文章主要介绍了Python之GUI编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、常用的GUI库

  1. Tkinter:tkinter(Tk interface)是Python的标准GUI库,支持跨平台的GUI程序开发,tkinter适合小型的GUI程序编写,也特别适合初学者学习GUI编程。
  2. wxPython:wxPython是比较流行的GUI库,适合大型应用程序开发,功能强宇tkinter,整体设计框架类似于MFC(Microsoft Foundation Classes  微软基础类库)
  3. PyQT:Qt是一种开源的GUI库,适合大型GUI程序开发,PyQT是Qt工具包标准的Python实现。我们也可以使用Qt Desginer 界面设计器快速开发GUI应用程序。

基于tkinter模块创建GUI程序包括如下4个核心步骤:

  1. 创建应用程序主窗口对象(也称:根窗口):通过类Tk的无参构造函数Python之GUI编程
  2. 在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等。
  3. 通过几何布局管理器,管理组件的大小和位置
  4. 事件处理:通过绑定事件处理程序,响应用户操纵所触发的事件(比如:单击、双击等)

操作如下:

from tkinter import *
from tkinter import messagebox
root = Tk()
btn01=Button(root)
btn01["text"]="点我就送花"
btn01.pack()
def songhua(e):       #e就是事件对象
    messagebox.showinfo("Message","送你一朵玫瑰花")
    print("送你99朵玫瑰花")
btn01.bind("<Button-1>", songhua)
root.mainloop()       #调用组件的mainloop()方法,进入事件循环

二、主窗口位置和大小

通过geometry('wxh ±x ±y‘)进行设置。w为宽度,h为高度,+x表示距屏幕左边的距离,-x表示据屏幕右边的距离,+y表示距屏幕上边的距离,-y表示距屏幕下边的距离。

root = Tk()
root.title("我的第一个GUI程序")
root.geometry("500x300+100+200")

实验:测试GUI程序的类的对象:

"""测试一个经典的GUI程序的写法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
    """一个经典的GUI程序的类的写法"""
    def __init__(self, master=None):
        super().__init__(master)      #super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.pack()
        self.createWidget()
    def createWidget(self):
        """创建组件"""
        self.btn01 = Button(self)
        self.btn01["text"] = "点击送花"
        self.btn01.pack()
        self.btn01["command"] =self.songhua
        # 创建一个退出按钮
        self.btnQuit= Button(self, text="退出", command=root.destroy)
        self.btnQuit.pack()
    def songhua(self):
        messagebox.showinfo("送花","送你99朵玫瑰花")
root=Tk()
root.geometry("400x100+200+300")
root.title("一个经典的GUI程序类的测试")
app = Application(master=root)
root.mainloop()

三、label标签

Label(标签)主要用于显示文本信息,也可以显示图像

Label(标签)有这些常见的属性:

  1. width,height:用于指定区域大小,如果显示是文本,则以单个英文字符大小为单位(一个汉字占2个字符位置);如果显示的是图像,则以像素为单位,默认值是根据具体显示的内容动态调整。
  2. font:指定字体和字体大小,如:font = (font_name,size)
  3. image:显示在Label上的图像,目前tkinter只支持gif格式
  4. fg和bg:fg(foreground):前景色、bg(background):背景色
  5. justify:针对多行文字的对齐,可设置justify属性,可选值”left“,”center“和”right"

四、Options选项详解

  1. 创建对象时,使用命名参数(也叫关键字参数)

 fred=Button(self, fg="red", bg="blue")

     2.创建对象后,使用字典索引方式

fred["fg"]= "red" 

fred["bg"] = "blue"

    3. 创建对象后,使用 config()方法

fred.config(fg="red", bg="blue")

五、 Button

Button(按钮)用来执行用户的单击操作,Button可以包含文本,也可以包含图像,按钮被单击后会自动调用对应事件绑定的方法。

六、Entry单行文本框

Entry用来接收一行字符串的控件,如果用户输入的文字长度长于Entry控件的宽度时,文字会自动向后滚动,如果想输入多行文本,需要使用Text控件。

"""测试Entry组件的基本用法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
    """一个经典的GUI程序的类的写法"""
    def __init__(self, master=None):
        super().__init__(master)      #super()代表的是父类的定义,而不是父类对象
        self.master=master
        self.pack()
        self.createWidget()
    def createWidget(self):
        """创建登录界面的组件"""
        self.label01 = Label(self,text="用户名")
        self.label01.pack()
        #StringVar变量绑定到指定的组件
        #StringVar变量的值发生变化,组件内容也变化
        #组件内容发生变化,StringVar变量的值也发生变化。
        v1=StringVar()
        self.entry01=Entry(self,textvariable=v1)
        self.entry01.pack()
        v1.set("admin")
        print(v1.get());print(self.entry01.get())
        #创建密码框
        self.label02=Label(self,text="密码")
        self.label02.pack()

        v2 = StringVar()
        self.entry02 = Entry(self, textvariable=v2,show="*")
        self.entry02.pack()
        Button(self,text="登录",command=self.login).pack()
    def login(self):
        print("用户名:"+self.entry01.get())
        print("密码:" + self.entry02.get())
        messagebox.showinfo("学习系统","登录成功!欢迎开始学习!")
if __name__=='__main__':
    root = Tk()
    root.geometry("400x130+200+300")
    app=Application(master=root)
    root.mainloop()

七、Text多行文本框

Text(多行文本框)的主要用于显示多行文本,还可以显示网页链接,图片,HTML页面,甚至CSS样式表,添加组件等,因此,也常被当做简单的文本处理器,文本编辑器或者网页浏览器来使用。比如IDLE就是Text组件组成的。

八、Radiobutton单选按钮与Checkbutton复选按钮

Radiobutton控件用于选择同一组单选按钮中的一个。Radiobutton可以显示文本,也可以显示图像。

Checkbutton控件用于选择多个按钮的情况。Checkbutton可以显示文本,也可以显示图像。

九、canvas画布

canvas(画布)是一个矩形区域,可以放置图形,图像,组件等。

十、布局管理器

grid布局管理器:grid表格布局,采用表格结构组织组件。子组件的位置由行和列的单元格来确定,并且可以跨行和跨列,,从而实现复杂的布局。

grid()方法提供的选项文章来源地址https://www.toymoban.com/news/detail-420182.html

选项 说明 取值范围
column 单元格的列号 从0开始的正整数
columnspan 跨列,跨越的列数 正整数
row 单元格的行号 从0开始的正整数
rowspan 跨行,跨越的行数 正整数
ipadx、ipady 设置子组件之间的间隔,x方向或者y方向,默认单位为像素 非负浮点数,默认0.0
padx、pady 与之并列的组件之间的间隔,x方向或者y方向,默认单位为像素 非负浮点数,默认0.0
sticky 组件紧贴所在单元格的某一角,对应于东南西北中以及4个角 “n“,”s“,”w“,”e“,”nw“,”sw“,”se“,”ne“,”center“(默认)

到了这里,关于Python之GUI编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【100天精通python】Day35:GUI界面编程_一文掌握Tkinter基本操作

    目录  专栏导读    1 GUI 编程概述 1.1 为什么需要GUI? 1.2 常见的GUI编程工具和库

    2024年02月12日
    浏览(54)
  • python中tkinter实现GUI程序:三个实例

    Python作为一种多功能、易于学习的编程语言,不仅仅在数据科学、机器学习、网络开发等领域大放异彩,也在图形用户界面(GUI)开发中扮演着重要角色。其中,Tkinter库作为Python的标准GUI库,以其简单易用而广受欢迎。 一位粉丝希望了解,如何实战python中tkinter如何实现GUI程

    2024年02月03日
    浏览(54)
  • Python制作简易计算器(GUI)---Tkinter

    tkinter模块是Python标准的TK GUI工具包接口,可以实现一些较为简单GUI的创建。 麻雀虽小,五脏俱全 TK工具集使用TCL(Tool Command Language)语言开发 运行相同的程序时,运行速度快于pyqt5 组件能满足基本使用 程序界面较简陋 开发时,使用的语句更短更易懂 Python内置的标准库 Qt框

    2024年02月08日
    浏览(60)
  • 【Python】线程threading与GUI窗口tkinter结合应用

    Python的threading模块是一个强大的工具,它提供了高级别的线程编程接口。通过这个模块,Python程序员可以在应用程序中实现多线程并发执行。 线程(Thread)是程序执行流的最小单元,被包涵在进程之中,是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不

    2024年01月19日
    浏览(48)
  • 基于Python+Tkinter GUI 的模式识别水果分类小程序

      采用Python语言编写,并结合Tkinter GUI工具制作交互式小程序开发,实现了简单的水果的边缘提取和分类。如图1-A,用户可以自定义选择路径并输出,同时可以在对话框中输入/输出结果,如图1-B。 A 界面展示 B 交互展示   图1 Tkinter GUI 展示 本次课程实践一整体设计分为三个部

    2024年02月09日
    浏览(66)
  • Python创建一个GUI(Tkinter)选择文件的界面获取文件路径

    1、点击【选择路径可以选择文件】 2、【确定(开始执行)】 这个按钮没有绑定函数,大家可以根据自己的需求绑定函数

    2024年02月11日
    浏览(67)
  • Python GUI界面界面—tkinter,学习、复习、查阅,这一篇就够了

            PythonGUI程序界面设计tkinter优点:无需另外下载,是自带的、操作简单、易方便;                                                          缺点:界面控件较少,页面不够美观 注:一般来说做小软件tkinter足够了(页面可以用ttkbootstrap美化

    2024年01月17日
    浏览(55)
  • 《零基础入门学习Python》第073讲:GUI的终极选择:Tkinter10

    我们不难发现,几乎每一个应用程序都有一些相同的地方,比如说:标题栏、状态栏、边框、滚动条、工作区。还有的就是 菜单。 传统的菜单有大家熟悉的 File,Edit,Help等,点开之后,是下拉菜单,今天我们就来学习使用 tkinter 如何制作这样子的菜单。tkinter 提供了一个叫

    2024年02月15日
    浏览(51)
  • 《零基础入门学习Python》第070讲:GUI的终极选择:Tkinter7

    上节课我们介绍了Text组件的Indexs 索引和 Marks 标记,它们主要是用于定位,Marks 可以看做是特殊的 Indexs,但是它们又不是完全相同的,比如在默认情况下,你在Marks指定的位置中插入数据,Marks 的位置会自动发生改变, 因为Marks 认它后面的“那个家伙”,当 Marks 前面的数据

    2024年02月15日
    浏览(44)
  • Python GUI之tkinter的皮肤(ttkbootstrap)打造出你的窗口之美

    tkinter是python自带的标准gui库,对于我们自己日常做一些小程序出来给自己使用是非常不错的。因为tkinter相比较其它强大的gui库(PyQT,WxPython等等)而言要简单、方便、学起来也容易得很多,基本上两三天就能学会,所以非常是nice的。但是喃,它做出来的界面,如果你是没有

    2024年02月02日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包