鱼C论坛

 找回密码
 立即注册
查看: 5042|回复: 12

[已解决]怎么样能够得到 tkinter下拉框的已选择的内容

[复制链接]
发表于 2020-7-12 22:30:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图; 我有个下拉框 ;  比如我选了天津;  
希望能够得到 天津 这两个字符串;
以供后面代码使用;  这个应该怎么写??

小白一枚, 如能提供部分代码, 感激不尽;
最佳答案
2020-7-12 23:14:51
maxliu06 发表于 2020-7-12 23:13
尝过,这样打印没问题‘;  但我想用一个变量,来获取选中下拉框的内容;  这样我的变量 就可以继续交给 ...



不是等于就好了吗?
from tkinter import *
from tkinter import ttk

root = Tk()

def get_(event):
    global temp
    temp = cmb.get()

cmb = ttk.Combobox(root)
cmb.pack()
cmb['value'] = ('上海','北京','天津','广州')
temp = None
cmb.bind("<<ComboboxSelected>>",get_)

mainloop()
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-12 22:46:16 | 显示全部楼层

这样试试看:
from tkinter import *
from tkinter import ttk

root = Tk()

def get_(event):
    print(cmb.get())

cmb = ttk.Combobox(root)
cmb.pack()
cmb['value'] = ('上海','北京','天津','广州')

cmb.bind("<<ComboboxSelected>>",get_)

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-12 23:13:39 | 显示全部楼层

尝过,这样打印没问题‘;  但我想用一个变量,来获取选中下拉框的内容;  这样我的变量 就可以继续交给下面的代码来使用。。。

现在就是卡在怎么让变量 可以得到下拉框的值。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 23:14:51 | 显示全部楼层    本楼为最佳答案   
maxliu06 发表于 2020-7-12 23:13
尝过,这样打印没问题‘;  但我想用一个变量,来获取选中下拉框的内容;  这样我的变量 就可以继续交给 ...



不是等于就好了吗?
from tkinter import *
from tkinter import ttk

root = Tk()

def get_(event):
    global temp
    temp = cmb.get()

cmb = ttk.Combobox(root)
cmb.pack()
cmb['value'] = ('上海','北京','天津','广州')
temp = None
cmb.bind("<<ComboboxSelected>>",get_)

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 09:24:44 | 显示全部楼层
Twilight6 发表于 2020-7-12 23:14
不是等于就好了吗?


不行呀,
cmb.bind("<<ComboboxSelected>>",get_)  后面  加个 print('temp')  是没有输出的;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 09:26:07 | 显示全部楼层
maxliu06 发表于 2020-7-13 09:24
不行呀,
cmb.bind("",get_)  后面  加个 print('temp')  是没有输出的;

你在后面肯定不行啊,除非你开线程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 09:47:29 | 显示全部楼层
本帖最后由 maxliu06 于 2020-7-13 09:49 编辑
Twilight6 发表于 2020-7-13 09:26
你在后面肯定不行啊,除非你开线程


那能不能弄成另一种方式;

比如,在下拉框旁边,加一下确定的按钮;

如果在下拉框中 选中了 北京 ,然后点确定;

那么就把北京 赋值给 一个变量;   然后打印该 变量;  

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 09:53:32 | 显示全部楼层
maxliu06 发表于 2020-7-13 09:47
那能不能弄成另一种方式;

比如,在下拉框旁边,加一下确定的按钮;


赋值变量上一个代码已经实现了,这里只是多加了打印
from tkinter import *
from tkinter import ttk

root = Tk()

def get_(event):
    global temp
    temp = cmb.get()

def show():
    print(temp)

cmb = ttk.Combobox(root)
cmb.pack()
cmb['value'] = ('上海','北京','天津','广州')
temp = None
cmb.bind("<<ComboboxSelected>>",get_)

button = Button(root,text='确认',command=show)
button.pack()

mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 09:56:00 | 显示全部楼层
Twilight6 发表于 2020-7-13 09:53
赋值变量上一个代码已经实现了,这里只是多加了打印


老大;  点确认 它一直都是None的; 就是赋值不成功呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 09:56:56 | 显示全部楼层
maxliu06 发表于 2020-7-13 09:56
老大;  点确认 它一直都是None的; 就是赋值不成功呀。

我错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 09:57:04 | 显示全部楼层
maxliu06 发表于 2020-7-13 09:56
老大;  点确认 它一直都是None的; 就是赋值不成功呀

你改动代码了吧? 赋值成功了啊,你temp 没选择肯定打印为 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 10:02:19 | 显示全部楼层
Twilight6 发表于 2020-7-13 09:57
你改动代码了吧? 赋值成功了啊,你temp 没选择肯定打印为 None

再请教两个问题:
1、get_ 函数可以return temp 吗;  如果 可以的话, 怎么样才能把return 值 赋值给一个变量?

2、代码中 temp =None 是啥意思?    自己敲代码时,就是少了这一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 10:06:07 | 显示全部楼层
maxliu06 发表于 2020-7-13 10:02
再请教两个问题:
1、get_ 函数可以return temp 吗;  如果 可以的话, 怎么样才能把return 值 赋值给一 ...

1、get_ 函数可以return temp 吗;  如果 可以的话, 怎么样才能把return 值 赋值给一个变量?


不行吧,我也不太清楚,没尝试过,你可以直接声明下你需要赋值的变量,在函数里面直接赋值就好了

2、代码中 temp =None 是啥意思?    自己敲代码时,就是少了这一个。


初始化 temp 这个变量而已,你等于 0 也不影响,只要能初始化就好了,主要是 get_方法中 global 的声明变量,然后再 get_方法中改变 temp 变量的值,也就是等于给 temp 重新赋值了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 01:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表