python下拉菜单_python图形界面tk 1.7 下拉列表(Combobox)

tk中下拉列表使用ttk.Combobox,代码如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import tkinter as tk

from tkinter import ttk

win = tk.Tk()

win.title("Python GUI") # 添加标题

ttk.Label(win, text="Chooes a number").grid(column=1, row=0) # 添加一个标签,并将其列设置为1,行设置为0

ttk.Label(win, text="Enter a name:").grid(column=0, row=0) # 设置其在界面中出现的位置 column代表列 row 代表行

# button被点击之后会被执行

def clickMe(): # 当acction被点击时,该函数则生效

action.configure(text='Hello ' + name.get()) # 设置button显示的内容

action.configure(state='disabled') # 将按钮设置为灰色状态,不可使用状态

# 按钮

action = ttk.Button(win, text="Click Me!", command=clickMe) # 创建一个按钮, text:显示按钮上面显示的文字, command:当这个按钮被点击之后会调用command函数

action.grid(column=2, row=1) # 设置其在界面中出现的位置 column代表列 row 代表行

# 文本框

name = tk.StringVar() # StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符;不过一般用在按钮button上。改变StringVar,按钮上的文字也随之改变。

nameEntered = ttk.Entry(win, width=12, textvariable=name) # 创建一个文本框,定义长度为12个字符长度,并且将文本框中的内容绑定到上一句定义的name变量上,方便clickMe调用

nameEntered.grid(column=0, row=1) # 设置其在界面中出现的位置 column代表列 row 代表行

nameEntered.focus() # 当程序运行时,光标默认会出现在该文本框中

# 创建一个下拉列表

number = tk.StringVar()

numberChosen = ttk.Combobox(win, width=12, textvariable=number)

numberChosen['values'] = (1, 2, 4, 42, 100) # 设置下拉列表的值

numberChosen.grid(column=1, row=1) # 设置其在界面中出现的位置 column代表列 row 代表行

numberChosen.current(0) # 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值

win.mainloop() # 当调用mainloop()时,窗口才会显示出来

执行代码结果如图:

2a931ce70b4b

52490873.png

注:

- 程序执行下拉框中默认显示的值由下面代码实现

nameEntered.focus() # 当程序运行时,光标默认会出现在该文本框中

- 在这里下拉框中还可以直接输入一个值,如果不希望这个地方可以输入值,可以在创建的时候添加一个参数:

state='readonly' # 将下拉列表设置成为只读模式

# 完整代码如下:

numberChosen = ttk.Combobox(win, width=12, textvariable=number, state='readonly')

修改代码,需求是当点击button按钮时,button上面显示的字符串是文本框和下拉列表显示的字符串的拼接,只需要修改一下clickMe函数就可以了,代码如下:

def clickMe(): # 当acction被点击时,该函数则生效

action.configure(text='Hello ' + name.get() + ' ' + numberChosen.get()) # 设置button显示的内容

代码执行结果如图:

2a931ce70b4b

54272903.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值