为了账号安全,请及时绑定邮箱和手机立即绑定

Python/Pyqt5-将选定的下拉选项存储在变量中

Python/Pyqt5-将选定的下拉选项存储在变量中

白猪掌柜的 2021-06-08 13:39:25
我试图根据用户是选择“基本”还是“高级”来运行不同的 if 语句。到目前为止,这是我的代码。我将使用高级/基本选项,因此我可以执行以下操作并将其存储在函数中,然后在需要时调用它。def basicAdvOpt    advBasicOptions = ("Basic", "Advanced")     selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)    if selection[0]:        print('Basic')    if selection[1]:        print('advanced')这是我的原始工作代码。发生的情况是,因为它是一个数组,所以它总是等于 [0] 和 [1],我试图弄清楚如何存储他们选择的任何值。    def getText(self):        userInput, okPressed = QInputDialog.getText( self,"Input IP-address", "Your IP-address:",QLineEdit.Normal, "")        if okPressed:            self.ipFormatChk(userInput)     #Pass the userInput variable                                             into the ipFormatChk function            if userInput.strip():                self.ipFormatChk(userInput)    def ipFormatChk(self, userInput):  #Checks if the input matches IP                                          format        pattern = r"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\." \                  r"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"        if re.match(pattern, userInput):            additionalText = "This is IP-address"            self.label.setStyleSheet("color: lightgreen; font: 24px;")            advBasicOptions = ("Basic", "Advanced")             selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)            if selection[0]:                print('Basic')            if selection[1]:                print('advanced')#Or just call the function            basicAdvOpt()        else:            additionalText = "This is NOT an IP-address"            self.label.setStyleSheet("color: red; font: 24px;")            advBasic = ("Basic", "Advanced")            advBasic, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasic, 0, False)        self.label.setText("{} <- {}".format(userInput, additionalText))
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

将结果与数组中的项目进行比较。


advBasicOptions = ("Basic", "Advanced") 

selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)


if selection == advBasicOptions[0]:

    print('Basic')

if selection == advBasicOptions[1]:

    print('advanced')

注意:我可能建议将这两个if语句放在一个封闭if okPressed块中,因为可能会选择Cancel或任何非确定选项。


如果您需要稍后存储它,只需将其保存到 self 上的实例变量中:


advBasicOptions = ("Basic", "Advanced") 

self.selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)


if self.selection == advBasicOptions[0]:

    print('Basic')

if self.selection == advBasicOptions[1]:

    print('advanced')

我希望这回答了你的问题


查看完整回答
反对 回复 2021-06-15
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信