day16笔记

16.01Python语言基础(Python实现英汉字典)(掌握)

Python实现英汉字典

#
# 打开英汉字典文件
file = open(“dict.txt”, “r”, encoding=”utf-8”)
# 读取字符串
lines = file.readlines()
# 创建字典
dictionary = {}
# 字典添加内内容
for i in lines:
line_list = i.split(“\t”)
dictionary[line_list[0]] = line_list[1]
# 单词查询功能
while True:
print(“请输入要查询的单词,输入0退出:”)
eng = input()
if eng == “0”:
break
if eng in dictionary.keys():
print(eng + “:\t” + dictionary[eng])
else:
print(“您查询的词尚未收录,敬请期待”)

16.02Python语言基础(tkinter概述)(熟练)

1.1 tkinter的概述

  • tkinter是python的一个标准GUI(图形化界面)
  • 扩展:
    • wxpython;开源软件(免费,原码),是一个python优秀的图形库
    • jython:java swing AWT SWT

16.03Python语言基础(创建一个图形化界面)(熟练)

  • 使用方式:
    • 1.导入tkinter
    • 2.创建控件
    • 3.指定这个控件的master,即这个控件属于谁
      1. 通知GM(geometry,manager)执行

示例

#
import tkinter
# 创建主窗口
window = tkinter.Tk()
# 设置标题
window.title(“英汉词典”)
# 设置窗口的大小和位置400×400:宽高 200+20 初始化时候窗口的位置
window.geometry(“400x400+200+20”) # 符号为(x)小写矮科斯
# 显示内容
window.mainloop()

16.04Python语言基础(控件lable)(熟练)

  • 定义:
    • 标签控件可以显示文本

lable控件

import tkinter

#创建主窗口
window = tkinter.Tk()
#设置标题
window.title("英汉词典")
#设置窗口的大小和位置400×400:大小宽高   200  20   初始化时候窗口所在的位置
window.geometry("400x400+200+20")
"""
window:父窗体
text:显示的文本内容
bg:背景
fg:字体颜色
wrapLength :指定text文本中多宽进行换行
justify:设置换行后的对齐方式
anchor: 位置  n 北   e  东  s南   w  西   center  居中
"""
label = tkinter.Label(window,text="1806",
              bg="blue",fg="red",
              font=("黑体",20),width="10",
              height="4",wraplength= 100,
              justify="left",anchor = "center")

# 管理控件
label.pack()#pack是一个布局管理器,一个弹性的容器

# 循环消息
window.mainloop()

16.05Python语言基础(控件Button)(熟练)

  • button定义:
    • button理解为按钮
  • 按钮的功能:
    • 当点击按钮时发生对应的事

按钮显示和控制

#
import tkinter

# 创建窗口
from tkinter import Frame

window = tkinter.Tk()
# 设置窗口
window.title("英汉词典")
window.geometry("500x500")


# 控制台输出信息的方法
def show_info():
    print("666")


# 显示按钮
btn_show = tkinter.Button(window, text="查询", command=show_info)
btn_show.pack(side="left")

# 退出按钮
btn_exit = tkinter.Button(window, text="退出", command=window.quit)
btn_exit.pack(side="right")

# 按钮布局
btn_frame = Frame(window, height=30)
btn_frame.pack()
#
# # 显示按钮
# btn_show = tkinter.Button(btn_frame, text="查询", command=show_info)
# btn_show.pack(side="left")
#
# # 退出按钮
# btn_exit = tkinter.Button(btn_frame, text="退出", command=window.quit)
# btn_exit.pack(side="right")

# 消息循环
window.mainloop()

16.06Python语言基础(Text控件)(熟练)

  • Text:
    • 显示文本信息

文本显示框

#

#
    import tkinter
from tkinter import *

# 创建窗口
window = tkinter.Tk()

# 配置窗口
window.title("英汉词典")
window.geometry("500x300")
window.resizable(width=True, height=False)

# 文本显示框
text = Text(window, width=68, height=20)
text.pack(side="bottom")

# 文本框插入内容
word = "hello hello hello hello hello hello hello hello hello"
text.insert(tkinter.INSERT, word)

# 消息循环
window.mainloop()

16.07Python语言基础(文本输入框)(熟练)

  • 输入文本内容的控件
    • 通过get()方法可以获取到输入内容
    • 通过set()方法可以预设内容

文本输入框案例

#
import tkinter

# 创建窗口
window = tkinter.Tk()
# 设置窗口
window.title("英汉词典")
window.geometry("500x500")

# 输入框
entry = tkinter.Entry(window)
entry.pack()


# 控制台输出内容
def show_info():
    print(entry.get())


# 按钮
button = tkinter.Button(window, text="查询", command=show_info)
button.pack()

# 消息循环
window.mainloop()

16.08Python语言基础(文本输入框关联文本显示框)(熟练)

  • 用户在文本输入框书写内容
  • 内容显示在文本显示框
  • 通过按钮点击事件关联

获取内容并显示案例

#
import tkinter
from tkinter import *

# 显示信息
def show_info():
    text.insert("1.0", entry.get() + "\n")


# 创建窗口
window = tkinter.Tk()

# 配置窗口
window.title("英汉词典")
window.geometry("500x300")
window.resizable(width=True, height=False)

# 输入框布局
input_frame = Frame(window, width=30, height=30)
input_frame.pack(side="top")

# 输入框
entry = Entry(input_frame, width=30)
entry.pack(side="left")

# 查询按钮
btn_search = Button(input_frame, text="查询", command=show_info)
btn_search.pack(side="left")

# 退出按钮
btn_search = Button(input_frame, text="退出", command=window.quit)
btn_search.pack(side="right")

# 文本
text = Text(window, width=68, height=20)
text.pack(side="bottom")

# 循环消息
window.mainloop()

16.09Python语言基础(进度条)(熟练)

  • 文本内容超出文本显示框一页容量时,内容将无法完全展示
  • 拖动进度条可显示全部内容

进度条案例

import tkinter
from tkinter import *


# 显示信息
def show_info():
    text.insert("1.0", entry.get() + "\n")


# 创建窗口
window = tkinter.Tk()

# 配置窗口
window.title("英汉词典")
window.geometry("500x300")
window.resizable(width=True, height=False)

# 输入框布局
input_frame = Frame(window, width=30, height=30)
input_frame.pack(side="top")

# 输入框
entry = Entry(input_frame, width=30)
entry.pack(side="left")

# 查询按钮
btn_search = Button(input_frame, text="查询", command=show_info)
btn_search.pack(side="left")

# 退出按钮
btn_search = Button(input_frame, text="退出", command=window.quit)
btn_search.pack(side="right")

# 滚动条
scroll = tkinter.Scrollbar()
scroll.pack(side="right", fill=tkinter.Y)

# 文本
text = Text(window, width=68, height=20)
text.pack(side="bottom")

# 关联滚动条和文字
text.config(yscrollcommand=scroll.set)
scroll.config(command=text.yview)

# 循环消息
window.mainloop()

16.10Python语言基础(绝对布局)(熟练)

  • 绝对布局
    • 使用place方法可以通过坐标的方式确定控件的位置
    • 其他控件的变化(增加或删除)不会影响自身的位置

绝对布局 案例

import tkinter

from tkinter import Label

# 创建窗口
window = tkinter.Tk()

# 设置窗口参数
window = tkinter.Tk()
window.title("英汉词典")
window.geometry("500x500")

# 创建控件
label_01 = Label(window, text="label_01", bg="blue")
label_02 = Label(window, text="label_02", bg="green")
label_03 = Label(window, text="label_03", bg="red")

# 管理控件
label_01.place(x=10, y=10)
label_02.place(x=50, y=50)
label_03.place(x=100, y=100)

# 循环消息
window.mainloop()

16.11Python语言基础(相对布局)(熟练)

  • 相对布局
    • 相对布局的控件会参照上一个控件的位置摆放自己
    • 其他控件的变化(增加或删除)会影响自身的位置

相对布局案例:

#
import tkinter

from tkinter import Label

# 创建窗口
window = tkinter.Tk()

# 设置窗口参数
window = tkinter.Tk()
window.title("英汉词典")
window.geometry("500x500")

# 创建控件
label_01 = Label(window, text="label_01", bg="blue")
label_02 = Label(window, text="label_02", bg="green")
label_03 = Label(window, text="label_03", bg="red")

# 管理控件
label_01.pack(fill=tkinter.Y, side=tkinter.LEFT)
label_02.pack(fill=tkinter.X, side=tkinter.TOP)
label_03.pack(fill=tkinter.X, side=tkinter.LEFT)

# 循环消息
window.mainloop()

16.12Python语言基础(表格布局)(熟练)

  • 参照表格中的位置摆放
    • 参数row表示行数
    • 参数column表示列数

表格布局案例

#
import tkinter

from tkinter import Label

# 创建窗口
window = tkinter.Tk()

# 设置窗口参数
window = tkinter.Tk()
window.title("英汉词典")
window.geometry("500x500")

# 创建控件
label_01 = Label(window, text="label_01", bg="blue")
label_02 = Label(window, text="label_02", bg="green")
label_03 = Label(window, text="label_03", bg="red")
label_04 = Label(window, text="label_01", bg="yellow")
label_05 = Label(window, text="label_02", bg="orange")
label_06 = Label(window, text="label_03", bg="pink")

# 管理控件
label_01.grid(row=1, column=1)
label_02.grid(row=2, column=2)
label_03.grid(row=3, column=3)
label_04.grid(row=1, column=4)
label_05.grid(row=2, column=5)
label_06.grid(row=3, column=6)

# 循环消息
window.mainloop()

16.13Python语言基础(浮雕布局)(熟练)

  • 浮雕布局可以让控件以3D的效果呈现
  • 浮雕布局属性为relief,共有五种类型:
    • FLAT —平的
    • RAISED —凸起的
    • RIDGE —脊状边缘
    • SUNKEN —凹陷
    • GROOVE —沟状

浮雕布局案例

#
import tkinter

from tkinter import Label, GROOVE, SUNKEN, RAISED, FLAT, RIDGE

# 创建窗口
window = tkinter.Tk()

# 设置窗口参数
window.title("英汉词典")
window.geometry("500x500")

"""
relief:3D效果
FLAT    ---平的
RAISED  ---凸起的
RIDGE   ---脊状边缘
SUNKEN  ---凹陷
GROOVE  ---沟状
"""

# 创建控件
label_01 = Label(window, text="label_01", bg="blue", relief=GROOVE)
label_02 = Label(window, text="label_02", bg="green", relief=SUNKEN)
label_03 = Label(window, text="label_03", bg="red", relief=RAISED)
label_04 = Label(window, text="label_04", bg="yellow", relief=FLAT)
label_05 = Label(window, text="label_05", bg="orange", relief=RIDGE)

# 管理控件
label_01.grid(row=1, column=1)
label_02.grid(row=2, column=2)
label_03.grid(row=3, column=3)
label_04.grid(row=4, column=4)
label_05.grid(row=5, column=5)

# 循环消息
window.mainloop()

16.14Python语言基础(单选按钮)(熟练)

  • 只可以选中一个选项,比如性别,毕业状况等信息

单选按钮示例

#
import tkinter

# 创建窗口
from tkinter import Checkbutton, IntVar, Radiobutton

window = tkinter.Tk()

# 设置窗口参数
window.title("英汉词典")
window.geometry("500x500")

# 一组按钮绑定一个变量
check_box = tkinter.BooleanVar()


# 接收显示结果
def send_result():
    print(check_box.get())


# 创建单选按钮
radio_man = Radiobutton(window, text="man", value=True, variable=check_box, command=send_result)
radio_woman = Radiobutton(window, text="woman", value=False, variable=check_box, command=send_result)

# 管理控件
radio_man.pack()
radio_woman.pack()

# 循环消息
window.mainloop()

16.15Python语言基础(多选按钮)(熟练)

  • 只可以选中多个选项,比如情趣爱好等信息

多选按钮示例

#
import tkinter

from tkinter import Checkbutton, StringVar, BooleanVar

# 创建窗口
window = tkinter.Tk()

# 设置窗口参数
window.title("英汉词典")
window.geometry("500x500")
# 存放选中信息
hobby_list = set()


# 获取选中信息
def update_info():
    if check_01.get():
        hobby_list.add("篮球")
    else:
        if "篮球" in hobby_list:
            hobby_list.remove("篮球")

    if check_02.get():
        hobby_list.add("足球")
    else:
        if "足球" in hobby_list:
            hobby_list.remove("足球")

    if check_03.get():
        hobby_list.add("排球")
    else:
        if "排球" in hobby_list:
            hobby_list.remove("排球")

    print(hobby_list)


# 给每一个选项创建一个变量
check_01 = BooleanVar()
check_02 = BooleanVar()
check_03 = BooleanVar()

# 复选框
check_box_01 = Checkbutton(window, text="篮球", variable=check_01, command=update_info)
check_box_02 = Checkbutton(window, text="足球", variable=check_02, command=update_info)
check_box_03 = Checkbutton(window, text="排球", variable=check_03, command=update_info)

# 管理控件
check_box_01.pack()
check_box_02.pack()
check_box_03.pack()

# 循环消息
window.mainloop()

16.16Python语言基础(带界面的字典)(熟练)

结合以上知识,编写代码实现带界面的字典

猜你喜欢

转载自blog.csdn.net/qq_42426237/article/details/81478804
今日推荐