请问combox控件的下拉选项怎么自动同步sqlite数据库中的数据呢?数据库里面有个表,表内只有一列数据,我想在点击combox控件的下拉选项后自动在下拉菜单里面显示数据库中的内容。
哪位给指导一下,这种应该怎么操作呢?
你首先获取数据库表的列数据嘛,for循环来创建 Item 项目
self.comboBox_process_interval = QtWidgets.QComboBox(self.tab_Train)
self.comboBox_process_interval.setObjectName("comboBox_process_interval")
self.comboBox_process_interval.addItem("")
self.comboBox_process_interval.addItem("")
self.comboBox_process_interval.addItem("")
self.comboBox_process_interval.addItem("")
self.comboBox_process_interval.addItem("")
self.comboBox_process_interval.addItem("")
创建后再进行设置值,或者你已知长度的话,addItem() 的时候,就可以顺便创建了
self.comboBox_process_interval.setItemText(0, _translate("MainWindow_ML_Tool", "10"))
self.comboBox_process_interval.setItemText(1, _translate("MainWindow_ML_Tool", "50"))
self.comboBox_process_interval.setItemText(2, _translate("MainWindow_ML_Tool", "100"))
self.comboBox_process_interval.setItemText(3, _translate("MainWindow_ML_Tool", "200"))
self.comboBox_process_interval.setItemText(4, _translate("MainWindow_ML_Tool", "500"))
self.comboBox_process_interval.setItemText(5, _translate("MainWindow_ML_Tool", "1000"))
直接上代码,望采纳
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
from PyQt5.QtWidgets import QApplication, QMainWindow,QComboBox
import sys
import sqlite3
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
#准备一些数据,:memory:改为你自己的数据库
db = sqlite3.connect(':memory:')
cursor = db.cursor()
#临时创建表
create_sql = 'create table combobox_item(item_name char(20))'
cursor.execute(create_sql)
#临时插入数据
insert_sql = 'insert into combobox_item(item_name) values(:1)'
cursor.executemany(insert_sql,[['1'],['x'],['23'],['44'],['y'],['zz']])
db.commit()
#获取数据
select_sql = 'select item_name from combobox_item'
cursor.execute(select_sql)
items = []
datas = cursor.fetchall()
for data in datas:
items.append(data[0])
cb = QComboBox(MainWindow)
cb.addItems(items)
MainWindow.show()
sys.exit(app.exec_())