添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


Python tkinter 下拉框(combobox)组件用于tkinter GUI里添加下拉框,下拉框可以添加文本和设置默认选项。当选中下拉框时,可以返回指定的值,通过不同的值,执行不同的函数。

使用语法:

self.drop_down_box = ttk.Combobox(master)
  • master:按钮控件的父容器

参数说明:

value

插入下拉选项

.current()

默认显示的下拉选项框

.get()

获取下拉选项框中的值

.insert()

下拉框中插入文本

.delete()

删除下拉框中的文本

state

下拉框的状态,分别包含DISABLED/NORMAL/ACTIVE

width

下拉框高度

foreground

前景色

selectbackground

选择后的背景颜色

fieldbackground

下拉框颜色

background

下拉按钮颜色

代码示例:

# coding:utf-8
from tkinter import *
from tkinter import ttk  # 导入ttk模块,因为下拉菜单控件在ttk中
class drop_down_box:
    def __init__(self):
        self.win = Tk()
        self.win.title("下拉框")
        self.win.geometry("600x200")
        '''下拉框样式'''
        # 创建下拉列表,设置下拉列表中的值
        self.normal_ddl = Label(self.win, text='下拉框选项:')
        self.ddl = ttk.Combobox(self.win)
        self.ddl['value'] = ('下拉选项1', '下拉选项2', '下拉选项3', '下拉选项4')
        # 设置默认值,即默认下拉框中的内容,索引从0开始
        self.ddb_default_L = Label(self.win, text='下拉框默认值:')
        self.ddb_default = ttk.Combobox(self.win)
        self.ddb_default['value'] = ('下拉选项1', '下拉选项2', '下拉选项3', '下拉选项4')
        self.ddb_default.current(2)
        # get()获取选中的值
        self.ddb_acquire_L = Label(self.win, text='获取下拉框的值:')
        self.ddb_acquire = ttk.Combobox(self.win)
        self.ddb_acquire['value'] = ('下拉选项1', '下拉选项2', '下拉选项3', '下拉选项4')
        self.ddb_acquire.current(3)
        ddl_get = self.ddb_acquire.get()
        self.ddb_acquire_echo = Label(self.win, text=str(ddl_get))
        # 下拉框中插入文本insert(插入位置,插入内容)
        self.ddb_insert_L = Label(self.win, text='下拉框中插入值:')
        self.ddb_insert = ttk.Combobox(self.win)
        self.ddb_insert.insert(0, 'data')
        # 下拉框删除文本,delete(删除开始位置,删除结束位置)
        self.ddb_delete_L = Label(self.win, text='下拉框中插入值:')
        self.ddb_delete = ttk.Combobox(self.win)
        self.ddb_delete['value'] = ('下拉选项1', '下拉选项2', '下拉选项3', '下拉选项4')
        self.ddb_delete.current(0)
        self.ddb_delete.delete(1, 4)
        # 下拉框状态
        self.ddb_status = Label(self.win, text='下拉框状态:')
        self.ddb_disabled = ttk.Combobox(self.win)
        self.ddb_disabled['value'] = ('禁用状态')
        self.ddb_disabled.current(0)
        self.ddb_disabled.config(state=DISABLED)
        self.ddb_normal = ttk.Combobox(self.win)
        self.ddb_normal['value'] = ('普通状态')
        self.ddb_normal.current(0)
        self.ddb_normal.config(state=NORMAL)
        self.ddb_active = ttk.Combobox(self.win)
        self.ddb_active['value'] = ('活跃状态')
        self.ddb_active.current(0)
        self.ddb_active.config(state=ACTIVE)
        # 下拉框权限
        self.ddb_permission = Label(self.win, text='下拉框权限:')
        self.dropdown_permission = ttk.Combobox(self.win)
        self.dropdown_permission['value'] = ('只读权限')
        self.dropdown_permission.current(0)
        self.dropdown_permission['state'] = 'readonly'
        self.dropdown_read_write = ttk.Combobox(self.win)
        self.dropdown_read_write['value'] = ('读写权限')
        self.dropdown_read_write.current(0)
        self.dropdown_read_write['state'] = 'read-write'
        # 下拉框宽度
        self.ddb_width_label = Label(self.win, text='下拉框宽度:')
        self.ddb_width = ttk.Combobox(self.win, width=9)
        # 下拉框颜色
        combostyle = ttk.Style()
        combostyle.theme_create('combostyle', parent='alt',
                                settings={'TCombobox':
                                    {'configure':
                                            'foreground': 'blue',  # 前景色
                                            'selectbackground': 'black',  # 选择后的背景颜色
                                            'fieldbackground': 'white',  # 下拉框颜色
                                            'background': 'red',  # 下拉按钮颜色
        combostyle.theme_use('combostyle')
        '''grid布局'''
        self.normal_ddl.grid(row=1, column=1, sticky='E')
        self.ddl.grid(row=1, column=2, sticky='NW')
        self.ddb_default_L.grid(row=2, column=1, sticky='E')
        self.ddb_default.grid(row=2, column=2, sticky='NW')
        self.ddb_acquire_L.grid(row=3, column=1, sticky='E')
        self.ddb_acquire.grid(row=3, column=2, sticky='NW')
        self.ddb_acquire_echo.grid(row=3, column=3, sticky='W')
        self.ddb_insert_L.grid(row=4, column=1, sticky='E')
        self.ddb_insert.grid(row=4, column=2, sticky='NW')
        self.ddb_delete_L.grid(row=5, column=1, sticky='E')
        self.ddb_delete.grid(row=5, column=2, sticky='NW')
        self.ddb_status.grid(row=6, column=1, sticky='E')
        self.ddb_disabled.grid(row=6, column=2, sticky='NW')
        self.ddb_normal.grid(row=6, column=3, sticky='NW')
        self.ddb_active.grid(row=6, column=4, sticky='NW')
        self.ddb_permission.grid(row=7, column=1, sticky='E')
        self.dropdown_permission.grid(row=7, column=2, sticky='NW')
        self.dropdown_read_write.grid(row=7, column=3, sticky='NW')
        self.ddb_width_label.grid(row=8, column=1, sticky='E')
        self.ddb_width.grid(row=8, column=2, sticky='NW')
        self.win.mainloop()
    def select(self):
        print(self.ddl.get())
if __name__ == '__main__':
    drop_down_box()

实际展示:

Python窗口无法下拉 python tk 下拉框_Python

java lambada 平均值 java平均数怎么运行

第四章1.数组的创建和使用算平均数,让用户输入一系列的正整数,最后输入-1表示输入结束,然后程序计算出这些数字的平均数,输出输入的数字的平均数和大于平均数的数。public static void main(String[] args) { Scanner in = new Scanner(System.in); int x = in.nextInt(); int [] numbers =

java 两数求和程序 java计算两个数的和

1.简介 在本教程中,您将学习一个Java程序,了解如何对两个二进制数求和。二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,但给出了解释。在这里,它与按位与运算符不同。它看起来像&运算符,但不是。您将在本文中得到澄清。不要跳过任何内容,也不要直接看到代码。