2017-02-20 20 views
-1

當前正試圖編寫一個函數來從python中的一組單選按鈕中返回已檢查的單選按鈕,但目前尚未成功。PyQt在組中查找已檢查的單選按鈕

的PyQt GUI代碼:

self.hlw_customer = QtWidgets.QWidget(self.grb_main) 
    self.hlw_customer.setGeometry(QtCore.QRect(110, 26, 361, 21)) 
    self.hlw_customer.setObjectName("hlw_customer") 
    self.hlb_customer = QtWidgets.QHBoxLayout(self.hlw_customer) 
    self.hlb_customer.setContentsMargins(0, 0, 0, 0) 
    self.hlb_customer.setObjectName("hlb_customer") 
    self.rdb_customer1 = QtWidgets.QRadioButton(self.hlw_customer) 
    self.rdb_customer1.setObjectName("rdb_customer1") 
    self.hlb_customer.addWidget(self.rdb_customer1) 
    self.rdb_customer2 = QtWidgets.QRadioButton(self.hlw_customer) 
    self.rdb_customer2.setObjectName("rdb_customer2") 
    self.hlb_customer.addWidget(self.rdb_customer2) 
    self.rdb_customer3 = QtWidgets.QRadioButton(self.hlw_customer) 
    self.rdb_customer3.setChecked(True) 
    self.rdb_customer3.setObjectName("rdb_customer3") 
    self.hlb_customer.addWidget(self.rdb_customer3) 
    self.rdb_customer4 = QtWidgets.QRadioButton(self.hlw_customer) 
    self.rdb_customer4.setObjectName("rdb_customer4") 
    self.hlb_customer.addWidget(self.rdb_customer4) 

功能找到檢查單選按鈕:

def find_checked_radiobutton(self): 
    ''' find the checked radiobutton ''' 
    enabled_checkbox = self.hlw_customer.findChildren(QtWidgets.QRadioButton, 'checked') 

但不幸的是這將返回[]

回答

-1

找到解決自己:

self.find_checked_radiobutton(self.hlw_customer.findChildren(QtWidgets.QRadioButton)) 

def find_checked_radiobutton(self, radiobuttons): 
    ''' find the checked radiobutton ''' 
    for items in radiobuttons: 
     if items.isChecked(): 
      checked_radiobutton = items.text() 
      return checked_radiobutton