秋月明 发表于 2021-5-11 11:28:24

获取combobox下拉列表框的索引

当点击下拉列表框的某一选项时,返回该选项的索引值。


毕设最后一个问题了,一直解决不了...真的很急

qq1151985918 发表于 2021-5-11 11:28:25

本帖最后由 qq1151985918 于 2021-5-12 10:12 编辑

秋月明 发表于 2021-5-12 10:08
这样在绑定函数外输出comb_index的值还是None,我是需要在这个函数外用到值

不会的
import tkinter
from tkinter import ttk

comb_index =
def click_comb(*arg):
    print(comb.current(), comb.get())
    comb_index = comb.current()

def show_comb_index():
    print(comb_index)
root = tkinter.Tk()
comb = ttk.Combobox(root)

comb["values"] = ("AAA","BBB","CCC","DDD")
comb.current(0)
comb.bind("<<ComboboxSelected>>",click_comb)
comb.pack()

button = tkinter.Button(text = "打印索引值", command = show_comb_index)
button.pack()

root.mainloop()

hrp 发表于 2021-5-11 11:54:37

tk还是qt5

qq1151985918 发表于 2021-5-11 15:55:07

import tkinter
from tkinter import ttk

def click_comb(*arg):
    print(comb.current(), comb.get())

root = tkinter.Tk()

comb = ttk.Combobox(root)
comb["values"]=("AAA","BBB","CCC","DDD")
comb.current(0)
comb.bind("<<ComboboxSelected>>",click_comb)
comb.pack()

root.mainloop()

秋月明 发表于 2021-5-11 16:29:43

qq1151985918 发表于 2021-5-11 15:55


你好,我这个方法我知道;但是这个只能在绑定函数里获取,我的疑问是如何返回获取到的当前索引的索引值。
我写的 return comb.current() ,这个方法不行...

秋月明 发表于 2021-5-11 16:44:03

hrp 发表于 2021-5-11 11:54
tk还是qt5

tkinter

qq1151985918 发表于 2021-5-11 18:07:17

本帖最后由 qq1151985918 于 2021-5-11 18:14 编辑

秋月明 发表于 2021-5-11 16:29
你好,我这个方法我知道;但是这个只能在绑定函数里获取,我的疑问是如何返回获取到的当前索引的索引值。 ...

我没明白你的意思,你说详细一些吧,你说的返回索引值是返回到哪里?要用在什么地方?不行的话可以加个按钮不就好了

秋月明 发表于 2021-5-12 09:54:45

本帖最后由 秋月明 于 2021-5-12 09:56 编辑

qq1151985918 发表于 2021-5-11 18:07
我没明白你的意思,你说详细一些吧,你说的返回索引值是返回到哪里?要用在什么地方?不行的话可以加个 ...

      #设置“朝向”列表框
      label_orient = Label(frame_prehouse,text="朝向:",font=("宋体",15))
      label_orient.grid(row=2,columnspan=2,sticky=W,padx=160,pady=20)
      Orient = StringVar()
      list_orient = ttk.Combobox(frame_prehouse, textvariable=Orient, state='readonly', width=12)
      list_orient.grid(row=2,columnspan=2,sticky=E)
      value = ['东', '东北', '东南', '北', '南', '西', '西北', '西南']
      list_orient["value"] = ( '东', '东北', '东南', '北', '南', '西', '西北', '西南')
      list_orient.current(0)
      def getorient(*args):
            print(list_orient.current())
      list_orient.bind("<<ComboboxSelected>>", getorient)

就是返回一个顺序,比如我点击了东南,我需要返回一个3;我需要的是 点击列表框里任意选项后就直接得到对应的数字,不用按钮

qq1151985918 发表于 2021-5-12 09:56:00

秋月明 发表于 2021-5-12 09:54
#设置“朝向”列表框
      label_orient = Label(frame_prehouse,text="朝向:",font=("宋体 ...

我是问你返回到哪里?返回到label或者别的地方?想怎么使用这个返回值

秋月明 发表于 2021-5-12 09:57:20

本帖最后由 秋月明 于 2021-5-12 09:58 编辑

qq1151985918 发表于 2021-5-12 09:56
我是问你返回到哪里?返回到label或者别的地方?想怎么使用这个返回值

返回一个变量,我需要用到这个变量
orient_num = int(getorient()) + 4
就是调用getorient这个绑定函数后得到这个返回值

qq1151985918 发表于 2021-5-12 10:04:31

秋月明 发表于 2021-5-12 09:57
返回一个变量,我需要用到这个变量
orient_num = int(getorient()) + 4
就是调用getorient这个绑定函 ...

import tkinter
from tkinter import ttk

comb_index =
def click_comb(*arg):
    print(comb.current(), comb.get())
    comb_index = comb.current()
   
root = tkinter.Tk()
comb = ttk.Combobox(root)

comb["values"] = ("AAA","BBB","CCC","DDD")
comb.current(0)
comb.bind("<<ComboboxSelected>>",click_comb)
comb.pack()

root.mainloop()

秋月明 发表于 2021-5-12 10:08:23

本帖最后由 秋月明 于 2021-5-12 10:10 编辑

qq1151985918 发表于 2021-5-12 10:04


这样在绑定函数外输出comb_index的值还是None,我是需要在这个函数外用到值

算了兄弟我还是用listbox吧,它有个curselection方法可以,谢谢你帮我解答

qq1151985918 发表于 2021-5-12 10:20:43

秋月明 发表于 2021-5-12 10:08
这样在绑定函数外输出comb_index的值还是None,我是需要在这个函数外用到值

算了兄弟我还是用listbo ...

列表是可以当做全局变量使用的,或者你可以声明一个全局变量

秋月明 发表于 2021-5-12 10:23:39

qq1151985918 发表于 2021-5-12 10:10
不会的

解决了!这个方法我之前想到过..当时只想着return一个值了...
谢谢你!
页: [1]
查看完整版本: 获取combobox下拉列表框的索引