If-else语句有4个QRadioButton

时间:2014-06-29 14:17:40

标签: python-2.7 pyqt4

我想用4个单选按钮制作一个if-else语句脚本:

radioButton_1, radioButton_2, radioButton_3, radioButton_4

这是我的代码:

def rb_check(self):
 rb_list=[radioButton_1, radioButton_2, radioButton_3, radioButton_4]
 for rb in rb_list:
    if radioButton_1.isChecked():
        print("You choose number 1")
    else radioButton_2.isChecked():
        print("You choose number 2")
    else radioButton_3.isChecked():
        print("You choose number 3")
    else radioButton_4.isChecked():
        print("You choose number 4")

我的代码是否正确?

1 个答案:

答案 0 :(得分:1)

对于你在使用If语句所做的事情,你不需要for循环,因为你没有使用它。

你可以这样做:

def rb_check(self):
    rb_list=[radioButton_1, radioButton_2, radioButton_3, radioButton_4]
    for counter, rb in enumerate(rb_list):
        if rb.isChecked():
            print("You choose number {}".format(counter + 1))

上面的代码假设按钮按顺序排列。如果你有以setObjectName功能命名的按钮,你可以这样做:

def rb_check(self):
    rb_list=[radioButton_1, radioButton_2, radioButton_3, radioButton_4]
    for rb in rb_list:
        if rb.isChecked():
            print("You choose {}".format(rb.objectName()))  

希望这有帮助