maxliu06 发表于 2020-7-12 22:30:24

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

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

小白一枚, 如能提供部分代码, 感激不尽;

Twilight6 发表于 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()

maxliu06 发表于 2020-7-12 23:13:39

Twilight6 发表于 2020-7-12 22:46
这样试试看:

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

现在就是卡在怎么让变量 可以得到下拉框的值。。。。

Twilight6 发表于 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()

maxliu06 发表于 2020-7-13 09:24:44

Twilight6 发表于 2020-7-12 23:14
不是等于就好了吗?

不行呀,
cmb.bind("<<ComboboxSelected>>",get_)后面加个 print('temp')是没有输出的;

Twilight6 发表于 2020-7-13 09:26:07

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

你在后面肯定不行啊,除非你开线程

maxliu06 发表于 2020-7-13 09:47:29

本帖最后由 maxliu06 于 2020-7-13 09:49 编辑

Twilight6 发表于 2020-7-13 09:26
你在后面肯定不行啊,除非你开线程

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

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

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

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

Twilight6 发表于 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()

maxliu06 发表于 2020-7-13 09:56:00

Twilight6 发表于 2020-7-13 09:53
赋值变量上一个代码已经实现了,这里只是多加了打印

老大;点确认 它一直都是None的; 就是赋值不成功呀。

maxliu06 发表于 2020-7-13 09:56:56

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

我错了。

Twilight6 发表于 2020-7-13 09:57:04

maxliu06 发表于 2020-7-13 09:56
老大;点确认 它一直都是None的; 就是赋值不成功呀

你改动代码了吧? 赋值成功了啊,你temp 没选择肯定打印为 None

maxliu06 发表于 2020-7-13 10:02:19

Twilight6 发表于 2020-7-13 09:57
你改动代码了吧? 赋值成功了啊,你temp 没选择肯定打印为 None

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

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

Twilight6 发表于 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 重新赋值了
页: [1]
查看完整版本: 怎么样能够得到 tkinter下拉框的已选择的内容