八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox

时间:2021-08-03 09:03:55

pyqt5中常用的按钮类控件有QPushButton、QRadioButton、QCheckBox、QToolButton等。这些按钮类的基类都是QAbstracButton类。所以这些类有部分方法是相同的。

通用的方法有

方法 描述
isDown() 判断按钮是否按下
isChecked() 返回布尔值,判断按钮是否标记,该方法与setChecAble()联合使用
isEnabled() 设置按钮是否禁用。禁用时按钮为灰色,参数为布尔值。注意这个单词的写法,网上有些教程错误的少写了一个d
isCheckAble() 设置按钮是否可标记,参数为布尔值
setAutoRepeat() 参数为True时,该按钮可以长时间被按钮,连续执行槽函数

一、QpushButton

 import sys,os
from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QVBoxLayout,QHBoxLayout
from PyQt5.QtGui import QIcon,QPixmap path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) class MyWindow(QWidget): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('PushButton示例')
self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' % path))
self.setGeometry(600,300,450,300) self.btn1 = QPushButton('按键一')
self.btn1.setCheckable(True) #默认为False。这是为True时,按钮会保持按下状态
self.btn1.clicked.connect(lambda:self.btnstate(self.btn1)) self.btn2 = QPushButton('按键二')
self.btn2.setIcon(QIcon(QPixmap(r'%s\4.图标素材\python.jpg' % path))) #设置按钮的图标
self.btn2.clicked.connect(lambda:self.btnstate(self.btn2)) self.btn3 = QPushButton('Disabled')
self.btn3.clicked.connect(lambda:self.btnsetdisabled(self.btn2))
self.btn3.isEnabled()
self.btn3.clicked.connect(lambda:self.btnstate(self.btn3)) self.btn4 = QPushButton('按键四')
self.btn4.setCheckable(True)
self.btn4.clicked.connect(lambda:self.btnstate(self.btn4)) vbx = QVBoxLayout()
vbx.addWidget(self.btn1)
vbx.addWidget(self.btn2)
vbx.addWidget(self.btn3)
vbx.addWidget(self.btn4) hbx = QHBoxLayout()
hbx.addStretch(1)
hbx.addLayout(vbx)
hbx.addStretch(1)
self.setLayout(hbx) def btnstate(self,btn):
if btn.isChecked():
print(btn.text()+'被按下')
else:
print(btn.text()+'没有按下') def btnsetdisabled(self,btn):
if btn.isEnabled():
btn.setEnabled(False)
else:
btn.setEnabled(True) if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())

QPushButton示例

效果图如下:

八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox

具体效果不再详述。

二、QRadIoButton

QRadIoButton是一中单选按钮,只有checked和unchecked两个状态,信号也是再切换单选按钮(开/关)时发射的。单选常用于“多选一”的场景,也就是说它默认是独占的。对于继承同一个弗雷QWidget的多个单选按钮,他们属于同一个按钮组合,用户最多只能选择其中一个。如果在同一个父组件下要用到多个独占的按钮组合,则需要将他们放在QGroupBox或QButtonBox中。而在实际中,一般只有状态改变时才会响应信号,所以常用于状态监控。

 import sys,os
from PyQt5.QtWidgets import QWidget,QRadioButton,QApplication,QVBoxLayout,QHBoxLayout,QGroupBox,QLabel,QLineEdit
from PyQt5.QtGui import QIcon,QPixmap path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) class MyWindow(QWidget): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('QRadioButton示例')
self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' % path))
self.setGeometry(600,300,400,150) rbtn1 = QRadioButton('男',self)
rbtn1.move(20,20)
rbtn1.toggled.connect(lambda:self.getsex(rbtn1))
rbtn2 = QRadioButton('女',self)
rbtn2.move(20,50)
rbtn2.toggled.connect(lambda: self.getsex(rbtn2)) lbl = QLabel('您的性别是:',self)
lbl.move(150,20)
self.lineEdit = QLineEdit(self)
self.lineEdit.move(150,50) def getsex(self,rbtn):
sender = self.sender()
self.lineEdit.setText(sender.text()) if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())

QRadioButton示例

效果图如下:

八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox

self.sender()返回的是信号发射到对象,text()则返回文本信息

三、QCheckBox

QCheckBox即带有标签的复选框,它同样具有两种状态的控件:开和关。复选框通常用于表示应用程序可以启用或禁用的功能,和单选框不同之处在于可以“多选”

 import sys,os
from PyQt5.QtWidgets import QWidget,QCheckBox,QApplication,QGridLayout,QLabel,QLineEdit
from PyQt5.QtGui import QIcon path = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
Items=[] class MyWindow(QWidget): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('QCheckBox示例')
self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' % path))
self.setGeometry(600,300,350,300) cb1 = QCheckBox('挖掘机')
cb2 = QCheckBox('平地机')
cb3 = QCheckBox('装载机')
cb4 = QCheckBox('振动碾')
lb1 = QLabel('选择是:')
self.lineEdit = QLineEdit() grid = QGridLayout()
grid.addWidget(cb1,1,1,1,1)
grid.addWidget(cb2,1,2,1,1)
grid.addWidget(cb3,2,1,1,1)
grid.addWidget(cb4,2,2,1,1)
grid.addWidget(lb1,3,1,1,1)
grid.addWidget(self.lineEdit,3,2,1,1)
self.setLayout(grid) cb1.stateChanged.connect(lambda:self.chooseItem(cb1))
cb2.stateChanged.connect(lambda: self.chooseItem(cb2))
cb3.stateChanged.connect(lambda: self.chooseItem(cb3))
cb4.stateChanged.connect(lambda: self.chooseItem(cb4)) def chooseItem(self,cb):
if cb.isChecked():
if cb.text() not in Items:
Items.append(cb.text())
shop_cart = ','.join(Items)
self.lineEdit.setText(shop_cart)
else:
if cb.text() in Items:
Items.remove(cb.text())
shop_cart = ','.join(Items)
self.lineEdit.setText(shop_cart) if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())

QCheckBox示例

效果图如下:

八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox

八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox的更多相关文章

  1. Android开发手记(7) 按钮类控件的使用

    1.点击Button改变页面背景色 通过Button改变页面背景色,首先新建相应的对象,让后绑定到Layout上的元素. final RelativeLayout layout = (Relative ...

  2. Flutter 标签类控件大全Chip

    老孟导读:Flutter内置了多个标签类控件,但本质上它们都是同一个控件,只不过是属性参数不同而已,在学习的过程中可以将其放在放在一起学习,方便记忆. RawChip Material风格标签控件,此 ...

  3. Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)

    PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...

  4. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  5. iOS开发——UI高级OC篇&自定义控件之调整按钮中子控件(图片和文字)的位置

    自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContent ...

  6. Qt编写自定义控件8-动画按钮组控件

    前言 动画按钮组控件可以用来当做各种漂亮的导航条用,既可以设置成顶部底部+左侧右侧,还自带精美的滑动效果,还可以设置悬停滑动等各种颜色,原创作者雨田哥(QQ:3246214072),驰骋Qt控件界多年 ...

  7. 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

    [源码下载] 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件 ...

  8. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  9. SilverLight:基础控件使用(4)-日期显示和选择类控件

    ylbtech-SilverLight-Basic-Control:基础控件使用(4)-日期显示和选择类控件 Calendar,DatePicker 1.A,返回顶部 Calendar控件(日期控件) ...

随机推荐

  1. c++ sort降序排序

    sort是c++ STL中提供的一个函数模板,可以用来对多种类型进行排序. 默认是升序排序.它有两种使用方法: default (1) template <class RandomAccessI ...

  2. linux mono环境

    安装好 CentOS 6.5 之后 1.更新系统 在命令行下执行 yum –y update 2.安装必要的软件 yum -y install gcc gcc-c++ bison pkgconfig ...

  3. App Transport Security has blocked a cleartext HTTP &lpar;http&colon;&sol;&sol;&rpar; resource load since it is insecure&period;-解决办法

    运行环境:Xcode Version 7.3.1 (7D1014) 使用NSURL进行数据请求数据代码: -(NSData *)requestData{ NSURL *url = [NSURL URL ...

  4. Linux 的账号与群组&lbrack;转自vbird&rsqb;

    Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...

  5. Measuring Lengths in Baden

    Description Measuring Lengths in Baden time limit per test: 2 seconds memory limit per test: 256 meg ...

  6. 如何禁止App在后台运行以及如何保存和恢复App的状态

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果禁止App在后台运行 iOS上的App类似于Windows ...

  7. 将目录结构输出为json格式&lpar;zTree&rpar;

    # -*- coding: UTF-8 -*- import json,os path = 'E:\\BACKUP' #返回空目录 def path_to_dict(path): d = {'name ...

  8. linux下查找指定后缀的文件

    1.linux下查找指定后缀的文件 例如查找当前目录下的所有后缀名时.c或.h的文件 find  .  -type f -regex  ".*\.\(c\|h\)"

  9. linux系统编程之管道(三):命令管道(FIFO&rpar;

    一,匿名管道PIPE局限性 管道的主要局限性正体现在它的特点上: 只支持单向数据流: 只能用于具有亲缘关系的进程之间: 没有名字: 管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配 ...

  10. Phpcms V9当前栏目及所有二级栏目下内容调用标签

    在二级栏目列表页调用: <!--* 获取子栏目* @param $parentid 父级id* @param $type 栏目类型* @param $self 是否包含本身 0为不包含* @pa ...