python tkinter 如何做一个如下所示的下拉菜单

 我来答
徽积分
2013-05-08 · TA获得超过105个赞
知道答主
回答量:42
采纳率:0%
帮助的人:38.2万
展开全部

Tkinter居然没有这种组件,所以就只能模拟了

#! /usr/bin/python
# -*- coding: utf8 -*-
from Tkinter import *
class Select(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.label = Label(self, text="选择项目")
        self.listBox = Listbox(self, height=1)
        self.button = Button(self, text='V', command=self.triggle)
        self.hideList = True
        for i in xrange(10):
            self.listBox.insert(i, 'Item%d'%i)
        self.label.grid(row=0, column=0, sticky=N)
        self.listBox.grid(row=0, column=1, sticky=N)
        self.button.grid(row=0, column=2, sticky=N)
        self.grid()
    def triggle(self):
        self.hideList ^= 1
        self.listBox.config(height=[self.listBox.size(), 1][self.hideList])
app = Select()
app.mainloop()

仅供参考。

匿名用户
2019-06-28
展开全部

这个要用ttk库

python37下的示例:

from tkinter import *
import tkinter.ttk #python32以下省略,因为__all__属性已包含ttk,自动导入,python32以下tkinter.ttk改为ttk
tk=Tk()
def re():
    print(c.get())
c = tkinter.ttk.Combobox(tk)
c.grid(row=3,column=1)
c['value'] = ("1","2") #必须str类型或int类型,不支持flont和complex(Python27中是long)类型


具体其他属性参照源码或度娘上搜“tkinter下拉列表”,CSDN里有N个东西

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87b2a52
推荐于2018-02-28 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部

你这不是菜单,你这是下拉列表框,combobox控件。tkinter默认是不带的。

但是TKINTER有一个“隐藏功能”,导入ttk主题库后,你就可以用ComboBox等高级控件了  。

给你个例子,你就知道怎么写了。


#coding:utf-8
import sys
import Tkinter
import Pmw
class Demo:
    def __init__(self, parent):
        parent.configure(background = 'white')
        self.target = Tkinter.Label(
                parent,
                relief = 'sunken',
                padx = 20,
                pady = 20,
        )
        self.target.pack(fill = 'x', padx = 8, pady = 8)
        colours = ('cornsilk1', 'snow1', 'seashell1', 'antiquewhite1',
                    'bisque1', 'peachpuff1', 'navajowhite1', 'lemonchiffon1',
                    'ivory1', 'honeydew1', 'lavenderblush1', 'mistyrose1')
        dropdown = Pmw.ComboBox(
                parent,
                label_text = 'Dropdown ComboBox:',
                labelpos = 'nw',
                selectioncommand = self.changeColour,
                scrolledlist_items = colours,
        )
        dropdown.pack(side = 'left', anchor = 'n',
                    fill = 'x', expand = 1, padx = 8, pady = 8)
        first = colours[0]
        dropdown.selectitem(first)
        self.changeColour(first)
    def changeColour(self, colour):
        print 'Colour: ' + colour
        self.target.configure(background = colour)
if __name__ == '__main__':
    root = Tkinter.Tk()
    Pmw.initialise(root)
    widget = Demo(root)
    root.mainloop()
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式