Python --- GUI编程(1)

本文介绍了如何使用Python的Tkinter、wxPython和PyQT库进行图形用户界面(GUI)编程,从Tkinter的基本操作到大型应用的开发选择,以及实例演示了创建第一个Tkinter程序的过程。
摘要由CSDN通过智能技术生成

GUI(Graphics User Interface)图形化用户界面编程

GUI编程类似于"搭积木",将一个个的组件放到窗口中,并给各 个组件赋予相应的事件绑定

常用的GUI库

  1. Tkinter
    是python标准的GUI库,支持跨平台的GUI开发,Tkinter适合小型的GUI程序
  2. wxPython
    比较流行的GUI库适合大型的应用程序开发,功能强于Tkinter整体框架类似于MFC
  3. PyQT
    Qt是一个开源的额GUI库,适合大型的GUI程序开发,PyQT 是Qt工具包的Python实现,我们也可以使用Qt Desginter页面设计器快速开发GUI应用程序

使用 tkinter 包开发第一个程序
tkinter 包 (“Tk 接口”) 是针对 Tcl/Tk GUI 工具包的标准 Python 接口。 Tk 和 tkinter 在大多数 Unix 平台,包括 macOS,以及 Windows 系统上均可使用。
导包

from tkinter import *
from tkinter import messagebox

实例化窗口对象

root = Tk()

设置窗口的大小和位置

geometry(widthxheight+x+y) 距离左面和上面的距离,里面参数如果是widthxheight-x-y 就是距离屏幕右边和下面的距离,也可以混用 +x-y距离左下,-x+y距离右上的

root.title("我的的第一个GUI程序")
# 参数的格式为:widthxheight+x+y
root.geometry("500x300+100+200")

添加按钮组件

btn01 = Button(root)
btn01["text"] = "按钮"
# 布局管理器,按顺序添加组件
btn01.pack()

绑定事件对象

def songhua(e):   # e就是事件对象
    # 弹出框
    messagebox.showinfo("Message","按钮的相应事件")
    print('按钮被点击')

# "<Button-1>" 鼠标左击
btn01.bind("<Button-1>",songhua)

显示窗口

# 进入事件循环显示窗口,调用它才会看到窗口
root.mainloop()

效果图
在这里插入图片描述

相应事件

在这里插入图片描述

完整的源码

from tkinter import *
from tkinter import messagebox

# 实例化一个窗口对象
root = Tk()

# 设置窗口的标题
root.title("我的的第一个GUI程序")
# 设置窗口的大小和位置
# 参数的格式为:widthxheight+x+y
root.geometry("500x300+100+200")

btn01 = Button(root)
btn01["text"] = "按钮"
# 布局管理器,按顺序添加组件
btn01.pack()


def songhua(e):   # e就是事件对象
    # 弹出框
    messagebox.showinfo("Message","按钮的相应事件")
    print('按钮被点击')

# "<Button-1>" 鼠标左击
btn01.bind("<Button-1>",songhua)
# 进入事件循环显示窗口,调用它才会看到窗口
root.mainloop()
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'aaa.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! import sys, os from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5 import QtCore, QtGui, QtWidgets class U_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1204, 836) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QtCore.QRect(80, 240, 1041, 371)) self.tableWidget.setAutoScrollMargin(9) self.tableWidget.setRowCount(9) self.tableWidget.setColumnCount(8) self.tableWidget.setObjectName("tableWidget") item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(6, item) item = Q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱喝水的小鲨鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值