我正在尝试使用两个ttk组合框从sqlite数据库中获取数据。我设法使用combo_division()函数在一个名为的组合框中列出项目。现在我试图对第二个名为产品菜单的组合框做类似的事情,但是列表需要根据组合框中的第一个选定项目缩小范围。
为了让SQL查询传递第二个组合框所需的信息,我想到了这样的东西:
'SELECT * FROM productname WHERE divisionname=?', (function_name())
到目前为止两个组合框的代码:
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
import sqlite3
def combo_division():
conn = sqlite3.connect('anglingdatabase.db')
cursor = conn.cursor()
cursor.execute('SELECT divisionname FROM productdivision')
data = []
for row in cursor.fetchall():
data.append(row[0])
return data
root = Tk()
root.title("Random Window Title")
root.geometry('1280x720')
rows = 0
while rows < 50:
root.rowconfigure(rows, weight=1)
root.columnconfigure(rows, weight=1)
rows += 1
divisiondropmenu = ttk.Combobox(root)
divisiondropmenu['values'] = combo_division()
divisiondropmenu.bind('<<ComboboxSelected>>', selecteddivision)
divisiondropmenu.grid(row=1, column=2, sticky='NESW')
productdropmenu = ttk.Combobox(root)
productdropmenu['values'] = combo_product()
productdropmenu.grid(row=2, column=2, sticky='NESW')
root.mainloop()
data = combo_division()
example_sql = ''' SELECT * FROM tablename WHERE division in ('{}') '''.format("','".join(data))
您可以动态构建实际SQL,前提是数据不是用户输入的(以避免SQL注入)。
问题内容: 在对话框中,如果选中了某个组合,则需要显示一组控件,否则显示另一组控件。即我需要2层,并且当组合被选中/未选中时,我需要在它们之间切换。我怎样才能做到这一点? 问题答案: CardLayout 为此,如下所示。
我的表单上有2个组合框(在表单加载事件中)。第一个组合框在表单加载后从选择语句中获取一个值。我想在我的第二个组合框中使用该值。这是我的代码: 1st组合框= cbDelivery 2de组合框= cbOrderNo 此组合框位于: private void CB delivery _ selectedindex changed(对象发送方,事件参数e) 因此,一旦我从1ste组合框中选择一个值,我
我有两个组合框: 根据comboBoxMainCategory中选择的值,comboBoxSubCategory应填充相应的枚举。 如果comboBoxMainCategory选择“Europe”,则comboBoxSubCategory应填充SubCategory Europe。如果为“USA”,则带有子类别USA。 你是如何做到这一点的? 这是我的代码: 问题是,因为comboBoxSubCa
我的用户控件上有两个组合框。我的目标是,当第一个被选中(里面有一个项目)时,第二个应该处于活动状态。以下是代码片段: 当第一个是项目选择时,如何激活第二个组合框?
我在一个表单中有两个组合框。 当combobox 2中的列表更新时,我希望combobox 1中选定的值发生变化。 例如:ComboBox1 包含移动公司的名称,ComboBox2 包含该公司所有移动电话的列表。
所以,我有一个奇怪的问题,我从组合框列表中选择一个项目,为了填充第二个组合框,我必须首先从第一个组合框中再次选择单词,而不是从项目列表中,而是单词本身。只有这样,代码才会注册我选择了该项目。我拥有的代码是简单的$variable.SelectedItem。参见下面的代码; 我想做的就是从下拉列表中选择位置“医院”,然后第二个名为“$ComboBox_Printer”的组合框填充我服务器中的打印机名