选择一个选项后添加带有 n-1 个选项的连续下拉菜单

Posted

技术标签:

【中文标题】选择一个选项后添加带有 n-1 个选项的连续下拉菜单【英文标题】:Add successive dropdown menus with n-1 choices after a choice is selected 【发布时间】:2019-01-29 19:34:44 【问题描述】:

我的选项卡式窗口中有一个使用QComboBox 的简单下拉菜单。

def tab1UI(self):
  layout = QFormLayout()
  self.cb = QComboBox()
  self.cb.addItems(["Option1", "Option2", "Option3", "Option4", "Option5", "Option6"])
  layout.addWidget(self.cb)
  self.setTabText(0,"Search")
  self.tab1.setLayout(layout)

我想要做的是在选择一个选项时添加另一个菜单。

假设用户选择Option3。一旦他们这样做,我想添加一个菜单,在该菜单下方不再有 option3 可供选择,而是有一个 No Selection 选项。将继续添加后续菜单,直到用户选择No Selection。我该怎么做?

【问题讨论】:

请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topic、how to ask 和 ... the perfect question 在此处申请。 *** 不是设计、编码、研究或教程资源。但是,如果您遵循您在网上找到的任何资源,进行诚实的编码尝试并遇到问题,那么您将有一个很好的示例可以发布。 您知道选择了哪个选项。您创建一个没有该选项的新列表并将其用作新菜单小部件的基础。请尝试编写代码,并更具体地解释您遇到的问题。 我不确定如何确定用户选择了哪个选项。有一种方法可以找到它并将其绑定到一个动作,我只是不确定如何。因此问题。 Not 因此问题。您希望对单击具有对象句柄和完整检查权限的菜单做出反应。这很容易通过示例和教程在线研究,因此我们假设您在此处发布之前了解该方法。再次阅读我链接到的发布指南。 【参考方案1】:

您可以将所有内容替换为变量,以使其更易于操作。这是一个例子。我不熟悉您正在使用的模块(显然是QComboBox),所以我的代码可能有一些错误。 开始代码:

def tab1UI(self):
  layout = QFormLayout()
  self.cb = QComboBox()
  items=["Option1", "Option2", "Option3", "Option4", "Option5", "Option6"]
  self.cb.addItems(items)
  layout.addWidget(self.cb)
  self.setTabText(0,"Search")
  self.tab1.setLayout(layout)
  #Here you would put a way to record which option the user selects, lets say "selected"
  selected=#Option user selects
  items=items.replace(selected, "No Selection") #This replaces the selected option with "No Selection"
  #Here you would insert the new menu, I think it is this way:
  layout = QFormLayout()
  self.cb = QComboBox()
  self.cb.addItems(items)
  layout.addWidget(self.cb)
  self.setTabText(0,"Search")
  self.tab1.setLayout(layout)

【讨论】:

以上是关于选择一个选项后添加带有 n-1 个选项的连续下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 3 个连续可靠下拉列表的 Ajax [重复]

Ruby on Rails 表单添加带有文本框的“其他”选项以选择下拉菜单

附加选项后选择问题

怎么用jquery实现 在一个下拉框中添加一个“其他”的选项来代表除去已选项的其余所有未选项

JQuery应用:实现下拉列表选择一项,然后在第二个下拉列表显示全部。谢谢了 请一定帮我做一下!200分!

选择带有值的下拉选项不断返回 null