You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于字典值实现Qt6联动下拉框求助(Python 3.12、Pandas)

Qt6 联动下拉框基础实现方案

核心逻辑

  • 创建两个QComboBox组件,分别作为主下拉框和联动下拉框
  • 主下拉框初始化时加载字典的所有键(one、two、three)
  • 为主下拉框绑定currentTextChanged信号,触发联动下拉框的选项更新逻辑

基础实现代码

from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QComboBox
import sys

# 你的数据源字典
color_dict = {'one':['Blue', 'Green'],'two':['Green','Red'],'three':['Orange']}

class LinkedComboBox(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置窗口布局
        layout = QVBoxLayout()
        self.setLayout(layout)

        # 创建第一个下拉框(主选择框)
        self.main_combo = QComboBox()
        # 加载字典的键作为选项
        self.main_combo.addItems(color_dict.keys())
        layout.addWidget(self.main_combo)

        # 创建第二个下拉框(联动框)
        self.link_combo = QComboBox()
        layout.addWidget(self.link_combo)

        # 绑定信号:主下拉框选项变化时触发更新联动框
        self.main_combo.currentTextChanged.connect(self.update_linked_combo)

        # 初始化联动框显示第一个选项的对应值
        self.update_linked_combo(self.main_combo.currentText())

    def update_linked_combo(self, selected_key):
        # 清空联动框现有选项
        self.link_combo.clear()
        # 根据选中的键加载对应的值作为选项
        self.link_combo.addItems(color_dict.get(selected_key, []))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = LinkedComboBox()
    window.show()
    sys.exit(app.exec())

关键细节说明

  • currentTextChanged信号:Qt6中该信号会在下拉框选中的文本发生变化时触发,传递当前选中的文本作为参数
  • update_linked_combo方法:负责清空联动框并加载对应字典值,color_dict.get(selected_key, [])确保即使选中不存在的键也不会报错
  • 初始化时主动调用一次update_linked_combo,保证程序启动时联动框有初始选项

内容的提问来源于stack exchange,提问作者Diner Knight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:45:59