PyQt5 控件學習(一個一個學習之QRadioButton)


QRadioButton 繼承圖:

它是按鈕中的第四個類別,就是個單選按鈕!

QRadioButton 描述:

QRadioButton 繼承:

 它的父類是QAbstractButton

 

 

QRadioButton 功能作用:

創建按鈕控件:

 1 from PyQt5.Qt import * #剛開始學習可以這樣一下導入
 2 import sys
 3 #1,創建app
 4 app  = QApplication(sys.argv)
 5 
 6 
 7 #2,控件的操作:
 8 #創建控件
 9 window = QWidget()
10 
11 
12 #設置控件
13 window.setWindowTitle("QRadioButton")
14 window.resize(500,500)
15 
16 
17 radio_button_1 = QRadioButton("",window)
18 radio_button_1.move(100,100)
19 radio_button_1.setIcon(QIcon("icon.ico"))
20 # radio_button_1.setChecked(True)  # 它是默認選中
21 
22 
23 radio_button_2 = QRadioButton("",window)
24 radio_button_2.move(100,200)
25 radio_button_2.setIcon(QIcon("icon.ico"))
26 
27 #展示控件
28 window.show()
29 
30 #3,進入消息循環
31 sys.exit(app.exec_())
View Code

 

設置快捷鍵:

使用& :

from PyQt5.Qt import * #剛開始學習可以這樣一下導入
import sys
#1,創建app
app  = QApplication(sys.argv)


#2,控件的操作:
#創建控件
window = QWidget()


#設置控件
window.setWindowTitle("QRadioButton")
window.resize(500,500)


radio_button_1 = QRadioButton("男-&Male",window)
radio_button_1.move(100,100)
radio_button_1.setIcon(QIcon("icon.ico"))
# radio_button_1.setChecked(True)  # 它是默認選中


radio_button_2 = QRadioButton("女-&Female",window)
radio_button_2.move(100,200)
radio_button_2.setIcon(QIcon("icon.ico"))

#展示控件
window.show()

#3,進入消息循環
sys.exit(app.exec_())
View Code

使用setshortcut

from PyQt5.Qt import * #剛開始學習可以這樣一下導入
import sys
#1,創建app
app  = QApplication(sys.argv)


#2,控件的操作:
#創建控件
window = QWidget()


#設置控件
window.setWindowTitle("QRadioButton")
window.resize(500,500)


radio_button_1 = QRadioButton("男-Male",window)
radio_button_1.move(100,100)
radio_button_1.setIcon(QIcon("icon.ico"))
radio_button_1.setShortcut("Ctrl+M")
# radio_button_1.setChecked(True)  # 它是默認選中


radio_button_2 = QRadioButton("女-Famale",window)
radio_button_2.move(100,200)
radio_button_2.setIcon(QIcon("icon.ico"))
radio_button_2.setShortcut("Ctrl+F")

#展示控件
window.show()

#3,進入消息循環
sys.exit(app.exec_())
View Code

 

QRadioButton 信號:

它的信號和父類中的信號一樣。

它最常用的是toggle切換狀態信號。

from PyQt5.Qt import * #剛開始學習可以這樣一下導入
import sys
#1,創建app
app  = QApplication(sys.argv)


#2,控件的操作:
#創建控件
window = QWidget()


#設置控件
window.setWindowTitle("QRadioButton")
window.resize(500,500)


radio_button_1 = QRadioButton("男-Male",window)
radio_button_1.move(100,100)
radio_button_1.setIcon(QIcon("icon.ico"))
radio_button_1.setShortcut("Ctrl+M")
# radio_button_1.setChecked(True)  # 它是默認選中


radio_button_2 = QRadioButton("女-Famale",window)
radio_button_2.move(100,200)
radio_button_2.setIcon(QIcon("icon.ico"))
radio_button_2.setShortcut("Ctrl+F")
###########################################################
radio_button_2.toggled.connect(lambda :print("女 發送狀態切換"))

###########################################################


#展示控件
window.show()

#3,進入消息循環
sys.exit(app.exec_())
View Code

 

如何將單選中的一個選項給剝離出呢?

通過setAutoExclusive(False) 設置 

from PyQt5.Qt import * #剛開始學習可以這樣一下導入
import sys
#1,創建app
app  = QApplication(sys.argv)


#2,控件的操作:
#創建控件
window = QWidget()


#設置控件
window.setWindowTitle("QRadioButton")
window.resize(500,500)


radio_button_1 = QRadioButton("男-Male",window)
radio_button_1.move(100,100)
radio_button_1.setIcon(QIcon("icon.ico"))
radio_button_1.setShortcut("Ctrl+M")
# radio_button_1.setChecked(True)  # 它是默認選中


radio_button_2 = QRadioButton("女-Famale",window)
radio_button_2.move(100,200)
radio_button_2.setIcon(QIcon("icon.ico"))
radio_button_2.setShortcut("Ctrl+F")

radio_button_3 = QRadioButton("女-Famale",window)
radio_button_3.move(100,300)
radio_button_3.setIcon(QIcon("icon.ico"))
radio_button_3.setShortcut("Ctrl+F")
###########################################################

radio_button_1.setAutoExclusive(False)  # 此時將第一個 拿出來了,另外兩個可單選

###########################################################


#展示控件
window.show()

#3,進入消息循環
sys.exit(app.exec_())

3
View Code

 

補充:

 

from PyQt5.Qt import * #剛開始學習可以這樣一下導入
import sys
#1,創建app
app  = QApplication(sys.argv)


#2,控件的操作:
#創建控件
window = QWidget()


#設置控件
window.setWindowTitle("QRadioButton")
window.resize(500,500)


radio_button_1 = QRadioButton("男-Male",window)
radio_button_1.move(100,100)
radio_button_1.setIcon(QIcon("icon.ico"))
radio_button_1.setShortcut("Ctrl+M")
# radio_button_1.setChecked(True)  # 它是默認選中


radio_button_2 = QRadioButton("女-Famale",window)
radio_button_2.move(100,200)
radio_button_2.setIcon(QIcon("icon.ico"))
radio_button_2.setShortcut("Ctrl+F")

radio_button_yes = QRadioButton("yes",window)
radio_button_yes.move(300,100)


radio_button_no = QRadioButton("yes",window)
radio_button_no.move(300,200)

#展示控件
window.show()

#3,進入消息循環
sys.exit(app.exec_())

3
View Code

如何解決,讓它變成分組互斥(分組單選)?

第一種方案是將它們分別放到兩個控件上。

但是,這樣的方法不好弄,很麻煩!

第二種方案:

我們通過下面的一個控件類QButtonGroup 來解決!

見鏈接:https://www.cnblogs.com/zach0812/p/11372320.html

 

 

 

 

總結:

以上就是有關單選按鈕,

下面看多選按鈕 QCheckBox:https://www.cnblogs.com/zach0812/p/11372324.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM