单选按钮网格

2024-04-25 00:15:40 发布

您现在位置:Python中文网/ 问答频道 /正文

背景故事:我对编写gui还不熟悉,我正在尝试制作一个单选按钮网格。到目前为止,我有这样的想法,但由于某种原因,当我把论点传递出去时,它就触犯了底线。”单选按钮列表[0]=setChecked.(True)”然后抛出列表索引超出范围错误。你知道为什么会这样,怎么解决吗?有没有更好的方法来制作单选按钮的网格(或者下拉菜单,有51个选项)?你知道吗

我用以下行初始化:

self.radio_button_widget = RadioButtonWidget('File Types', "Please select the type of file to edit", ('adhdrs_on_bd', 'adhdrs_on_bm', 'alabama', 'asr', 'atq', 'bsa', 'caars_on_bd'))

然后调用:

from PyQt4 import *  
class RadioButtonWidget(QtGui.QWidget):  
    def __init__(self, label, instruction, button_list):  
        super(RadioButtonWidget,self).__init__()  
        self.titleLabel = QtGui.QLabel(label)  
        self.radio_group_box= QtGui.QGroupBox(instruction)  
        self.radio_button_group = QtGui.QButtonGroup()  

        self.radio_button_list = []  
        for each in self.radio_button_list:  
            self.radio_button_list.append(QtGui.QRadioButton(each))


        self.radio_button_list[0].setChecked(True) 

        self.radio_button_layout = QtGui.QVBoxLayout()

        counter = 1
        for each in self.radio_button_list:
            self.radio_button_layout.addWidget(each)
            self.radio_button_group.addButton(each)
            self.radio_button_group.setID(each, counter)
            counter += 1
        self.radio_group_box.setLayout(self.radio_button_layout)


        self.main_layout = QtGui.QVBoxLayout()
        self.main_layout.addWidget(self.titleLabel)
        self.main_layout.addWidget(self.radio_group_box)
        self.setLayout(self.main_layout)




    def selected_button(self):
        return self.radio_button_group.checkedId()

Tags: selfboxmainoncountergroupbutton按钮