Python脚本速成

8_下拉框

# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox

class GeneratedUI:
    """生成的Tkinter界面"""

    def __init__(self, master=None):
        # 创建主窗口
        self.master = master if master else tk.Tk()
        self.master.title("下拉框的使用")
        self.master.geometry("500x350+700+100")
        self.master.configure(bg='white')

        # 创建界面组件
        self.组件布局()

        # 1、往最前面插入
        临时列表 = list(self.master.nametowidget('下拉框_学历')["values"])
        临时列表.insert(0,'幼儿园')
        self.master.nametowidget('下拉框_学历')["values"]=临时列表

        # 2、往最后面插入
        临时列表 = list(self.master.nametowidget('下拉框_学历')["values"])
        临时列表.append("博士后")
        self.master.nametowidget('下拉框_学历')["values"] = 临时列表

        # 3、按钮事件
        self.master.nametowidget('按钮_取选中学历').config(command=self.取选中学历)
        self.master.nametowidget('按钮_清空所有项').config(command=self.清空所有项)


    def 清空所有项(self):
        """彻底清空:临时切换状态 + 清空选项 + 重置显示"""

        self.master.nametowidget('下拉框_学历').config(state='normal') # 把下拉框的只读模式,修改成可修改的正常模式
        self.master.nametowidget('下拉框_学历')['values'] = [] # 清空所有的选项

        self.master.nametowidget('下拉框_学历').delete(0, tk.END) # 选中的项,删除

        self.master.nametowidget('下拉框_学历').config(state="readonly") # 再恢复到原来的模式



    def 取选中学历(self):

        选中项的文本 = self.master.nametowidget('下拉框_学历').get() # 取选中项的文本

        self.master.nametowidget("文本框_日志").insert(tk.END,f'当前选中:{选中项的文本}\n')





    def 组件布局(self):
        """创建所有界面组件"""

        # 按钮: 按钮_369675a5 -> btn_1
        self.btn_1 = tk.Button(
            self.master,
            text="取选中学历",
            bg="#4CAF50",
            fg="white",
            font=('微软雅黑', 10),
            name="按钮_取选中学历"
        )
        self.btn_1.place(
            x=279.0,
            y=24,
            width=100,
            height=25
        )

        # 下拉框: 下拉框_8db15cbc -> combo_1
        self.combo_1 = ttk.Combobox(
            self.master,
            values=['小学', '初中', '高中', '本科', '硕士', '博士'],
            name="下拉框_学历",
            state="readonly"
        )
        self.combo_1.place(
            x=120.0,
            y=24,
            width=150,
            height=25
        )
        self.combo_1.set("本科")

        # 标签: 标签_a875541c -> lbl_1
        self.lbl_1 = tk.Label(
            self.master,
            text="学历:",
            bg="#2196F3",
            fg="white",
            font=('微软雅黑', 10),
            name="标签_学历"
        )
        self.lbl_1.place(
            x=15.0,
            y=24.0,
            width=100,
            height=25
        )

        # 文本框: 文本框_717b5b0e -> text_1
        self.text_1 = tk.Text(
            self.master,
            bg="white",
            fg="black",
            font=('微软雅黑', 10),
            name="文本框_日志"
        )
        self.text_1.place(
            x=14.0,
            y=72.0,
            width=468.0,
            height=262.0
        )

        # 按钮: 按钮_40b495e1 -> btn_2
        self.btn_2 = tk.Button(
            self.master,
            text="清空所有项",
            bg="#4CAF50",
            fg="white",
            font=('微软雅黑', 10),
            name="按钮_清空所有项"
        )
        self.btn_2.place(
            x=384.0,
            y=23.0,
            width=100,
            height=25
        )


def main():
    """主函数"""
    root = tk.Tk()
    app = GeneratedUI(root)
    root.mainloop()

if __name__ == "__main__":
    main()