python tkinter 做一个菜单

 我来答
百度网友87b2a52
2013-05-09 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部

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

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

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

# -*- coding: UTF-8 -*-
# 获取ODBC数据源列表
from tkinter import *
from tkinter import ttk
import win32api,win32con
    
    
def GetODBCdsn():
    key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,
    'SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources',0, win32con.KEY_ALL_ACCESS)
    #print(key)
    #print(win32api.RegQueryValue(key,''))
    #print('返回项的子项数目、项值数目,以及最后一次修改时间',win32api.RegQueryInfoKey(key))
    subitem, item, opdate =win32api.RegQueryInfoKey(key)
    dsnlist=[]
    for i in range(item):
        print('---',win32api.RegEnumValue(key, i))
        dsnName,dsnObject,dsnType = win32api.RegEnumValue(key, i)
        dsnlist.append(dsnName)
    #print(dir(win32api))
    win32api.RegCloseKey(key)
    return dsnlist
    
    
class MFrame(Frame):
    def __init__(self, master=None, cnf={}, **kw):
        self.master = master
        self.master.title('获取用户定义的数据源')
        self.combo = ttk.Combobox(self.master)
        self.combo.config(state="readonly")
        self.combo.pack(side=TOP, fill = 'x', expand = False)
        self.combo.update_idletasks()
        comlist=GetODBCdsn()
        self.combo['values'] = comlist
    
    
def test():
    GetODBCdsn()
def main():
    root = Tk()
    mf=MFrame(root)
    root.mainloop()
if __name__=="__main__":
    #test()
    main()
Jzwalliser
2021-08-08 · TA获得超过161个赞
知道答主
回答量:44
采纳率:0%
帮助的人:2.2万
展开全部

import tkinter
import tkinter.ttk

root = tkinter.Tk()
box = tkinter.ttk.Combobox(root)
box.pack()
box['value'] = ['选项1','选项2','Hello! 我被默认选中啦']
box.current(2)#设置当前选中的项
print(box.get())

root.mainloop()

效果图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式