溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發(fā)技術 > 
  • python GUI庫圖形界面開發(fā)之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例

python GUI庫圖形界面開發(fā)之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例

發(fā)布時間:2020-09-23 17:25:34 來源:腳本之家 閱讀:135 作者:jia666666 欄目:開發(fā)技術

PyQt5單選按鈕控件QRadioButton簡介

QRadioButton 繼承自 QAbstractButton,其主要作用提供用戶一些互斥的按鈕。

QRadioButton 只有一個的時候,功能類似于復選框, 可以選擇和取消,但是如果有多個,則必須有一個被選中

QRadioButton類中常用的方法

方法 描述
setCheckanle() 設置按鈕是否已經被選中,可以改變單選按鈕的選中狀態(tài),如果設置為True則表示單選按鈕將保持以點擊和釋放狀態(tài)
isChecked() 返回單選按鈕的狀態(tài),返回值True或False
setText() 設置單選按鈕顯示的文本
text() 返回單選按鈕顯示的文本

QRadioButton按鈕的使用實例

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class RadioDemo(QWidget):
 def __init__(self,parent=None):
  super(RadioDemo,self).__init__(parent)
  #水平布局
  layout=QHBoxLayout()


  self.btn1=QRadioButton('Button1')
  #默認選中btn1
  self.btn1.setChecked(True)
  #toggled信號與槽函數綁定
  self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))
  layout.addWidget(self.btn1)

  self.btn2 = QRadioButton('Button2')
  self.btn2.toggled.connect(lambda: self.btnstate(self.btn2))
  layout.addWidget(self.btn2)

  self.setLayout(layout)
  self.setWindowTitle('RadioButton demo')

 def btnstate(self,btn):
 #輸出按鈕1與按鈕2的狀態(tài),選中還是沒選中
  if btn.text()=='Button1':
   if btn.isChecked()==True:
    print(btn.text()+"is selected")
   else:
    print(btn.text()+"is deselected")

  if btn.text()=="Button2":
   if btn.isChecked() == True:
    print(btn.text() + "is selected")
   else:
    print(btn.text() + "is deselected")
if __name__ == '__main__':
 app=QApplication(sys.argv)
 radioDemo=RadioDemo()
 radioDemo.show()
 sys.exit(app.exec_())

效果如圖

python GUI庫圖形界面開發(fā)之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例

QRadioButton代碼分析

在這個例子中,兩個互斥的單選框被放置在窗口中

第一個單選按鈕btn1,被設置成默認狀態(tài)

self.btn1.setChecked(True)

當選擇兩個按鈕相互切換時,按鈕的狀態(tài)發(fā)生改變,將觸發(fā)toggle信號,并與槽函數btnstate()連接。使用lamdba的方式允許將源信號傳遞給槽函數,將按鈕作為參數

self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))
self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))

當發(fā)射toggled信號后,使用btnstate()函數來檢查按鈕的狀態(tài)

所有QRadioButton的控件是互斥的,所以也可以通過多個父控件來對QRadioButton進行分組。不過,一般使用QButtonGroup來對按鍵進行分組。通過按鍵分組的方式來讓不同類型的QRadioButton不互相排斥。

本文主要講解了PyQt5單選按鈕控件QRadioButton詳細使用方法與實例,更多關于PyQt5控件知識請查看下面的相關鏈接

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI