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_())

设置快捷键:

使用& :

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_())

使用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_())

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_())

如何将单选中的一个选项给剥离出呢?

通过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

补充:

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

如何解决,让它变成分组互斥(分组单选)?

第一种方案是将它们分别放到两个控件上。

但是,这样的方法不好弄,很麻烦!

第二种方案:

我们通过下面的一个控件类QButtonGroup 来解决!

见链接:https://www.cnblogs.com/zach0812/p/11372320.html

总结:

以上就是有关单选按钮,

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

原文地址:https://www.cnblogs.com/zach0812/p/11372228.html

时间: 2024-10-19 04:49:50

PyQt5 控件学习(一个一个学习之QRadioButton)的相关文章

PyQt5 控件学习(一个一个学习之QAbstractButton)

QAbstractButton : 前面说的QObject 和 QWidget 是最主要的两个基类.它们都是gui (Graphical User Interface)编程中的控件的共性.下面就说下他们的子类的学习. 但是,学习它们子类的时候,我们不是按照它们的继承关系来学习的,而是按照控件的功能来学习的! 主要分为两部分:基础控件和高级控件 下面看按钮: 我们不是直接学QPushButton ,而是要先学它继承的类----QAbstactButton. QAbstractButton描述: 它

DEV中的TreeList控件应用的一个小效果实现【转载】

我使用最多的DEV控件就是这个TreeList啦,当然用好它很不简单,如果用好它,能做出很精彩的树形层次结构图.TreeList控件很强大,以至于你看DEV自带的DEMO,也得浪费你很长时间应用.DEV控件的DEMO只是告诉你有些什么功能,只是抛砖引玉,决不能照搬DEMO! 用好TreeList控件绝对会让你的软件锦上添花!精益求精促使我总想用TreeList实现出更好的效果,但对TreeList控件的每一步深入学习,都需要花费不要时间和精力.现在记录一下我学习使用该控件的一个小功能的过程. 就

Android必备:Android UI控件的了解与学习

看这里:Android必备:Android UI控件的了解与学习 由于工作需要,最近一段时间,需要进行Android App开发的学习,之前简单的进行过Android的了解,对于基本的Android环境的搭建等已经有过整理,一个Android App是由一个或多个Activity组成,每一个Activity都是一个UI容器,也就是一个屏幕界面,一个界面的组成则是由一组Android UI控件组成,本篇,我们就来简单的对Android UI控件进行初步的了解和学习. Android UI控件根据其

DEV中的TreeList控件应用的一个小效果实现——个人总结

我使用最多的DEV控件就是这个TreeList啦,当然用好它很不简单,如果用好它,能做出很精彩的树形层次结构图.TreeList控件很强大,以至于你看DEV自带的DEMO,也得浪费你很长时间应用.DEV控件的DEMO只是告诉你有些什么功能,只是抛砖引玉,决不能照搬DEMO! 用好TreeList控件绝对会让你的软件锦上添花!精益求精促使我总想用TreeList实现出更好的效果,但对TreeList控件的每一步深入学习,都需要花费不要时间和精力.现在记录一下我学习使用该控件的一个小功能的过程. 就

WPF中一个控件绑定另一个控件的属性

原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin="50,130"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="40"/> </Grid.ColumnDefinitions>

PyQt5 控件学习(一个一个学习之QCommandLinkButton)

QCommandLinkButton: 它和QPushButton 差不多,这里稍微了解: QCommandLinkButton的功能作用: 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

PyQt5 控件学习(一个一个学习之QToolButton)

QToolButton 的继承图: QToolButton 之描述: 一个主窗口,我们一般分为 从上到下,标题栏 ,菜单栏(文字) ,工具栏(一般都是图标,没文字),工作区,状态栏. 我们这里说的是工具栏 QToolButton 之继承: 它继承自QAbstractButton ! QToolButton 之功能作用: 1 from PyQt5.Qt import * #刚开始学习可以这样一下导入 2 import sys 3 #1,创建app 4 app = QApplication(sys.

PyQt5 控件学习(一个一个学习之QPlainTextEdit)

QPlainTextEdit继承图 : QPlainTextEdit描述 : 它和QTextEdit 差不多(但是它不是继承QTextEdit),但是它更适合大的文本!  具体差异看上面! QTextEdit 是按照像素来滚动的,而QPlainTextEdit 是按照行来滚的, 证明如下: from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__in

PyQt5 控件学习(一个一个学习之QKeySequenceEdit)

QKeySequenceEdit 的继承图 : QKeySequenceEdit 的描述 : QKeySequenceEdit 的继承 : 它是继承自QWidget  的 from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QKeySequenceEdit 控件的学习") se