Python实验项目7 :tkinter GUI编程

**1)**利用tkinter 制作界面,效果图如下:

python 复制代码
from tkinter import *  # 
win=Tk()
for i in range(1,20):
    Button(width=5,height=10,bg="black" if i%2==0 else
     "white").pack(side="left")
win.geometry("880x300")
win.mainloop()

(2)利用tkinter 制作界面,效果图如下:

python 复制代码
from tkinter import *
win=Tk()
win.title("bind()绑定")
win.geometry("300x200")
frame1=LabelFrame(relief=GROOVE,text="工具栏")
frame1.pack(anchor=NW,fill=X)
btn1=Button(frame1,text="复制")
btn1.grid(row=1,column=1)
btn2=Button(frame1,text="剪切")
btn2.grid(row=1,column=2)
btn3=Button(frame1,text="粘贴")
btn3.grid(row=1,column=3)
text1=Text()
text1.pack(expand=YES,fill=BOTH)

def docopy():
    data=text1.get(SEL_FIRST,SEL_LAST)
    text1.clipboard_clear()
    text1.clipboard_append(data)
def docut():
    data=text1.get(SEL_FIRST,SEL_LAST)
    text1.delete(SEL_FIRST,SEL_LAST)
    text1.clipboard_clear()
    text1.clipboard_append(data)
def dopaste():
    text1.insert(INSERT,text1.clipboard_get())
def doclear():
    text1.delete('1.0',END)
btn1.config(command=docopy)
btn2.config(command=docut)
btn3.config(command=dopaste)
win.geometry("600x300")
mainloop()

(3) 设计GUI界面,模拟QQ登录界面,用户输入用户名和密码,如果正确提示登录成功;否则提示登录失败。

python 复制代码
from tkinter import *  # 
import tkinter.messagebox
win=Tk()
lable=Label(text="QQ")
lable.grid(row=0,column=0,columnspan=2)
lable=Label(text="用户名")
lable.grid(row=1,column=0)
lable=Label(text="密码")
lable.grid(row=2,column=0)
win.geometry("400x300")
username=StringVar()
entry=Entry(textvariable=username)
entry.grid(row=1,column=1)
password=StringVar()
entry1=Entry(textvariable=password)
entry1.grid(row=2,column=1)
button=Button(text="reset")
button.grid(row=3,column=0)
button1=Button(text="OK")
button1.grid(row=3,column=1)
def reset():
    password.set("")
    username.set("")

def ok():   
    if(password.get()=="123456" and username.get()=="周杰伦"):
        tkinter.messagebox.showinfo(title="登录界面",message="登录成功")
    else:
        tkinter.messagebox.showinfo(title="登录界面",message="用户名或密码错误")
button.config(command=reset)  
button1.config(command=ok) 
win.mainloop()

(4) 使用Button组件的command参数实现事件处理,将事件处理的方法使用bind()方法实现。

(5) 编制求两个正整形数最小公倍数程序。要求:两个输入框txt、txt2,用来输入整形数据;一个按钮;一个不可编辑的输入组件txt3。当单击按钮时,在txt3中显示两个整形数的最小公倍数的值。

python 复制代码
from tkinter import *
from tkinter import StringVar
win=Tk()
win.title("求两个正整形数最小公倍数")

label=Label(win,text="正整数1:")
label.grid(row=0,column=0)
label1=Label(win,text="正整数2:")
label1.grid(row=1,column=0)
label2=Label(win,text="最小公倍数:")
label2.grid(row=2,column=0)

win.geometry("300x300")

txt=StringVar()
entry=Entry(win,width=20,textvariable=txt)
entry.grid(row=0,column=1)

txt2=StringVar()
entry1=Entry(win,width=20,textvariable=txt2)
entry1.grid(row=1,column=1)

txt3=StringVar()
entry2=Entry(win,width=20,textvariable=txt3)
entry2.grid(row=2,column=1)

def func():
    a=int(txt.get())
    b=int(txt2.get())
    c=a*b
    for i in range(1,c+1):
        if a*i%b==0:
            txt3.set(a*i)
            break
def func2():
    txt.set("")
    txt2.set("")
    txt3.set("")


button = Button(text="计算", command=func)
button.grid(row=3,column=0)
button1 = Button(text="reset", command=func2)
button1.grid(row=3,column=1)
mainloop()

相关推荐
__lost8 分钟前
Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
python·opencv·计算机视觉
海绵波波10714 分钟前
玉米产量遥感估产系统的开发实践(持续迭代与更新)
python·flask
逢生博客1 小时前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
堕落似梦1 小时前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
坐吃山猪2 小时前
Python-Agent调用多个Server-FastAPI版本
开发语言·python·fastapi
Bruce-li__2 小时前
使用Django REST Framework快速开发API接口
python·django·sqlite
小兜全糖(xdqt)2 小时前
python 脚本引用django中的数据库model
python·django
Arenaschi3 小时前
SQLite 是什么?
开发语言·网络·python·网络协议·tcp/ip
纪元A梦3 小时前
华为OD机试真题——推荐多样性(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
仙人掌_lz3 小时前
人工智能与机器学习:Python从零实现性回归模型
人工智能·python·机器学习·线性回归