python界面开发 - Button 按钮

1. python图形界面开发

Python作为一种高级编程语言,具有简单易学、开发效率高等优点,近年来备受关注。Python的图形界面开发也是其应用领域之一。本文将从多个角度分析Python图形界面开发。

  • 一、Python图形界面开发——Tkinter

  • 二、Python图形界面开发——PyQt

  • 三、Python图形界面开发——wxPython

  • 四、Python图形界面开发—— PyGTK

  • 五、Python图形界面开发—— Kivy

  • 六、Python图形界面开发——可视化工具

1.1. Python图形界面开发——Tkinter

Python自带的GUI开发工具包,可以创建简单的GUI应用程序。

Tkinter是Python自带的GUI开发库,它是一个跨平台的开发库,可在多个操作系统上使用。Tkinter提供了丰富的GUI控件,如按钮、标签、文本框等,可以方便地创建各种GUI应用。此外,Tkinter的文档和教程也非常全面,易于入门。

Tkinter是Python自带的GUI工具包,它是一个跨平台的工具包,可以在Windows、Linux和MacOS等操作系统上运行。Tkinter是基于Tk GUI工具包的Python接口,TkGUI工具包是一个用于创建GUI应用程序的工具包,最初是为Tcl语言设计的,后来被移植到了其他语言中,包括Python。

1.2. Python图形界面开发——PyQt

一个基于Qt库的Python GUI开发工具包,提供了丰富的GUI组件和功能。

PyQt是一个用于开发Python GUI应用的工具包,它是基于Qt库开发的。PyQt提供了与Qt相同的GUI控件,并且还提供了一些独特的控件,如日期选择器、颜色选择器等。PyQt的文档也很全面,但是由于它不是Python自带的库,所以需要先安装。

1.3. Python图形界面开发——wxPython

基于wxWidgets库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。

wxPython也是一个用于开发Python GUI应用的工具包,它是基于wxWidgets库开发的。wxPython提供了与wxWidgets相同的GUI控件,可在多个操作系统上使用。wxPython的文档和教程也很全面,但与PyQt相比,它的学习曲线稍微陡峭一些。

1.4. Python图形界面开发—— PyGTK:基于GTK

PyGTK:基于GTK+库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。

1.5. Python图形界面开发—— Kivy

Kivy:一个跨平台的Python GUI开发框架,专注于创建移动应用程序和多点触控应用程序。

1.6. Python图形界面开发——可视化工具

除了以上三种GUI开发库外,还有一些Python可视化工具,如Matplotlib、Seaborn、Plotly等,它们可以用于数据可视化、绘制图表等。这些工具不仅能够提供强大的图形绘制功能,而且还可以与GUI库相结合,实现更加丰富多彩的GUI应用。

1.7. Python图形界面开发——GUI设计原则

在进行Python图形界面开发时,需要遵循一些GUI设计原则,如界面简洁、易用性高、反应速度快等。此外,还需要注意界面的美观度,选择合适的颜色、字体、图片等,以提高用户体验。

2. Tkinter 开发

使用Tkinter,可以快速地创建GUI应用程序,Tkinter提供了一系列的GUI组件,如按钮、标签、文本框、滚动条、列表框等,可以通过这些组件来构建GUI界面。Tkinter还提供了一些布局管理器,可以更方便地管理和布局GUI组件。

常用控件包括:

  • Button 按钮

  • Label 提示信息,用于显示文本和图像。

  • Message:类似于Label,但可以自动换行

  • Entry 文本框,用于输入单行文本。

  • Text文字区域,用于输入多行文本。

  • Checkbutton 用于创建复选框,用于选择一个或多个选项。

  • Radiobutton:用于创建单选按钮, 用于选择一项。

  • Scale:用于创建滑动条, 用于选择一个范围内的值。

  • Listbox:用于创建列表框

  • 布局管理

3. Button 按钮

tk.Button() 用于创建按钮。

3.1. .command 属性

在Python中,事件处理是通过事件循环机制来实现的。事件循环是一个无限循环,它等待事件的发生,并且根据事件类型来执行相应的操作。

在GUI编程中,事件循环是由GUI框架自动处理的,程序员只需要提供事件的处理函数即可。例如,在Tkinter中,可以通过绑定事件处理函数到控件上来处理相应的事件。


import tkinter as tk

def button_click():
    print("Button clicked")

root = tk.Tk()

button = tk.Button(root, text="Click me", command=button_click)
button.pack()

root.mainloop()


当按钮被点击时,button_click函数将被调用并打印出一条信息。

除了GUI事件之外,Python还支持其他类型的事件处理,例如文件读写事件、网络事件等。这些事件的处理方式与GUI事件类似,也是通过事件循环机制来实现的。

3.1.1. 示例1 : command=root.quit

Widget控件有一个常用方法Quit,执行此方法时Python Shell窗口的程序将结束,但是此窗口的应用程序继续运行。

在这里插入图片描述


from tkinter import *


def print_info():
    print("账户:%s\n密码:%s" % (accountEntry.get(), pwdEntry.get()))


root = Tk()
root.title("用户登录")

msg = "欢迎光临"
image0 = PhotoImage(file="logo-login3.png")
logoLabel = Label(root, image=image0, text=msg, compound=BOTTOM)
logoLabel.grid(row=0, column=0, columnspan=2, pady=10, padx=10)

nameLabel = Label(root, text="账户")
nameLabel.grid(row=1)
addressLabel = Label(root, text="密码")
addressLabel.grid(row=2)

accountEntry = Entry(root)
accountEntry.grid(row=1, column=1)
pwdEntry = Entry(root, show="*")
pwdEntry.grid(row=2, column=1)

# 以下建立Login按钮和Quit按钮
loginBtn = Button(root, text="进入", command=print_info)
loginBtn.grid(row=3)
quitBtn = Button(root, text="退出", command=root.quit)
quitBtn.grid(row=3, column=1)

root.mainloop()

输出结果:


账户:666
密码:777

3.1.2. 示例2 : root.master.destroy

import tkinter as tk


class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        self.hi_there = tk.Button(self)
        self.hi_there["text"] = "Hello World\n(click me)"
        self.hi_there["command"] = self.say_hi
        self.hi_there.pack(side="top")

        self.quit = tk.Button(self, text="QUIT", fg="red",
                              command=self.master.destroy)
        self.quit.pack(side="bottom")

    def say_hi(self):
        print("hi there, everyone!")


root = tk.Tk()
root.title("Button.commond 示例")
root.geometry("500x500")

app = Application(master=root)
app.mainloop()


在这里插入图片描述

这个示例创建了一个窗口,包含一个按钮和一个退出按钮。单击“Hello
World”按钮,将在控制台中打印一条消息。单击退出按钮,将关闭应用程序。

3.2. 动态创建Button

import tkinter as tk

class Calculator:
    def __init__(self, master):
        self.master = master
        master.title("Calculator")

        # 创建显示结果的文本框
        self.display = tk.Entry(master, width=30, justify='right')
        self.display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)

        # 创建数字按钮
        button_list = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+'
        ]
        r = 1
        c = 0
        for b in button_list:
            cmd = lambda x=b: self.click(x)
            tk.Button(master, text=b, width=5, command=cmd).grid(row=r, column=c)
            c += 1
            if c > 3:
                c = 0
                r += 1

    def click(self, key):
        if key == '=':
            result = eval(self.display.get())
            self.display.delete(0, tk.END)
            self.display.insert(tk.END, str(result))
        elif key == 'C':
            self.display.delete(0, tk.END)
        else:
            self.display.insert(tk.END, key)

root = tk.Tk()
calculator = Calculator(root)
root.mainloop()


在这里插入图片描述

  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛魔王的小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值