选择一个选项后添加带有 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 个选项的连续下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails 表单添加带有文本框的“其他”选项以选择下拉菜单
怎么用jquery实现 在一个下拉框中添加一个“其他”的选项来代表除去已选项的其余所有未选项