python机器学习3

1.窗口GUI函数库

Python也提供了用于开发图形用户界面(GUI)的各种功能,常见的函数库如下。

· Tkinter:这是Python附带的Tk GUI工具包中的Python函数库,本章会详细介绍。

· wxPython:这是一个用于wxWindows的图形用户界面,官方网址为http://wxpython.org

· JPython:这是一个以Java为基础的Python函数库,使用Java的GUI类为基础的Python GUI程 序。

· PyQt:这是一个以Qt为基础的Python函数库,使用Qt的Python GUI程序。

Tkinter是Python的标准GUI图形化使用界面,支持跨平台功能,是当前Python开发者使用最多的函数库。它已经包含在Python的安装程序中,不用另外再通过pip安装。

使用Tkinter创建GUI应用程序,步骤如下:

(1)导入Tkinter模块。

(2)创建GUI应用程序的主窗口。

(3)将一个或多个控制件添加到主窗口中。

(4)程序做无限循环,等待用户触发每个组件的事件,并做相应的反应。

python 复制代码
try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
win=tk.Tk()
win.wm_title("hello,word!")
win.minsize(width=666,height=480)
win.maxsize(width=666,height=480)
win.resizable(width=False,height=False)
win.mainloop()

2.文字Label

如何在窗口中加入文字组件,然后显示在窗口上。需要特别注意两个函数pack和place,它们的作用都是把组件加到窗口中,其差异如下:

· pack(),依照使用的先后顺序放入窗口。

· place(),在窗口中X、Y指定的位置加入文字组件。

python 复制代码
try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk

win=tk.Tk()
label1=tk.Label(win,text="hello,word")
label1.pack()
label2=tk.Label(win,text="hello no2",fg="red",bg="yellow")
label2.pack()
label3=tk.Label(win,text="hello,no3")
label3.pack(side="top",anchor="w")
label4=tk.Label(win,text="hello,no3")
label5=tk.Label(win,text="powen",bg="#ff0000")
label5.place(x=120,y=140)
win.mainloop()

3.显示图片Image

python 复制代码
try:
    import tkinter as tk
    from PIL import ImageTk, Image
    win = tk.Tk()
    img_path = r"C:/Users/nsy/Desktop/58.jpg"
    try:
        img = ImageTk.PhotoImage(Image.open(img_path))
    except IOError:
        print(f"Cannot open image file: {img_path}")
        win.destroy()  # 如果无法加载图像,关闭窗口
        raise
    label1 = tk.Label(win, image=img)
    label1.pack()
    win.mainloop()
except ImportError:
    print("Tkinter or PIL is not installed.")

4.按键Button

介绍如何新增按键,并且处理用户按下按键之后的反应动作。按键的方法如下:在程序中通过tk.Button添加一个按键,并指定该按键按下去后,会调用event1自定义的函数。

python 复制代码
try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
def event1():
    print("btn1 presses.")
btn1=tk.Button(win,text="press.me",command=event1)
btn1.pack()
win.mainloop()

5.消息窗口tkMessageBox

tkMessageBox,用来显示消息和询问用户的选择。

· showinfo:显示消息。

· showwarning:警告消息。

· showerror:显示错误。

· askquestion:询问问题。

· askokcancel:确认或取消。

· askyesno:是或否。

· askretrycancel:询问要重新运行或取消。

python 复制代码
try:
    import Tkinter as tk
    import tkMessageBox
except ImportError:
    import tkinter as tk
    import tkinter.messagebox as tkMessageBox
def hello():
    tkMessageBox.showinfo("say,hello")
win=tk.Tk()
B1=tk.Button(win,text="say hello")
B1.pack()
win.mainloop()

6.输入框Entry

如何新增输入框Entry,并且取得用户所输入的数据。

python 复制代码
try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk

def event1():
    t1 = entry1.get()
    var_.set(t1)

root = tk.Tk()
entry1 = tk.Entry(root)
entry1.pack()

btn1 = tk.Button(root, text="press me", command=event1)
btn1.pack()

var_ = tk.StringVar()
label1 = tk.Label(root, text="hello", textvariable=var_)
label1.pack()

var_.set("New text")

root.mainloop()

7.绘图Canvas

介绍如何使用Canvas绘图的功能,并且依次展示画出圆饼图、显示图片等结果。在该Canvas绘图中比较特别的是bind函数,它可以获取鼠标相关的位置。运行的时候,在窗口上面通过鼠标的单击和拖动,可以体验到bind()的功能,可以绘制出图画。

相关推荐
金灰2 分钟前
HTML5--裸体回顾
java·开发语言·前端·javascript·html·html5
爱上语文6 分钟前
Java LeetCode每日一题
java·开发语言·leetcode
qq_273900237 分钟前
解析TMalign文本文件中的转换矩阵
python·生物信息学
Манго нектар33 分钟前
JavaScript for循环语句
开发语言·前端·javascript
程序猿小D42 分钟前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
阿华的代码王国1 小时前
【JavaEE】——文件IO的应用
开发语言·python
satan–01 小时前
R语言的下载、安装及环境配置(Rstudio&VSCode)
开发语言·windows·vscode·r语言
电饭叔1 小时前
《python语言程序设计》2018版第8章19题几何Rectangle2D类(下)-头疼的几何和数学
开发语言·python
Eternal-Student1 小时前
everyday_question dq20240731
开发语言·arm开发·php
卑微求AC2 小时前
(C语言贪吃蛇)11.贪吃蛇方向移动和刷新界面一起实现面临的问题
c语言·开发语言