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

我试图根据用户是选择“基本”还是“高级”来运行不同的 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))



白猪掌柜的
浏览 97回答 1
1回答

明月笑刀无情

将结果与数组中的项目进行比较。advBasicOptions = ("Basic", "Advanced")&nbsp;selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)if selection == advBasicOptions[0]:&nbsp; &nbsp; print('Basic')if selection == advBasicOptions[1]:&nbsp; &nbsp; print('advanced')注意:我可能建议将这两个if语句放在一个封闭if okPressed块中,因为可能会选择Cancel或任何非确定选项。如果您需要稍后存储它,只需将其保存到 self 上的实例变量中:advBasicOptions = ("Basic", "Advanced")&nbsp;self.selection, okPressed = QInputDialog.getItem(self, "Select Basic or Advanced", "", advBasicOptions, 0, False)if self.selection == advBasicOptions[0]:&nbsp; &nbsp; print('Basic')if self.selection == advBasicOptions[1]:&nbsp; &nbsp; print('advanced')我希望这回答了你的问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python