这篇文章主要为大家详细介绍了pyqt5每天必学之切换按钮的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
切换按钮是qpushbutton的特殊模式。它是一个具有两种状态的按钮:按压和未按压。我们通过这两种状态之间的切换来修改其它内容。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
pyqt5 教程
在这个例子中,我们创建三个切换按钮。
他们将控制一个qframe的背景颜色。
作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月3日
"""
import sys
from pyqt5.qtwidgets import qapplication, qwidget, qpushbutton, qframe
from pyqt5.qtgui import qcolor
class example(qwidget):
def __init__(self):
super().__init__()
self.initui()
def initui(self):
self.col = qcolor(0, 0, 0)
redb = qpushbutton('红', self)
redb.setcheckable(true)
redb.move(10, 10)
greenb = qpushbutton('绿', self)
greenb.setcheckable(true)
greenb.move(10, 60)
blueb = qpushbutton('蓝', self)
blueb.setcheckable(true)
blueb.move(10, 110)
redb.clicked[bool].connect(self.setcolor)
greenb.clicked[bool].connect(self.setcolor)
blueb.clicked[bool].connect(self.setcolor)
self.square = qframe(self)
self.square.setgeometry(150, 20, 100, 100)
self.square.setstylesheet('qwidget { background-color:%s }' %
self.col.name())
self.setgeometry(300, 300, 280, 170)
self.setwindowtitle('切换按钮')
self.show()
def setcolor(self, pressed):
source = self.sender()
if pressed:
val = 255
else:
val = 0
if source.text() == '红':
self.col.setred(val)
elif source.text() == '绿':
self.col.setgreen(val)
else:
self.col.setblue(val)
self.square.setstylesheet('qframe { background-color:%s }' %
self.col.name())
if __name__ == '__main__':
app = qapplication(sys.argv)
ex = example()
sys.exit(app.exec_())
在我们的例子中,我们创建了三个切换按钮和一个qwidget。我们设置qwidget的背景色为黑色。切换按钮将切换颜色值的红,绿和蓝色部分。背景颜色将取决于切换。
self.col = qcolor(0, 0, 0)
初始颜色值为黑色。
redb = qpushbutton('红', self)
redb.setcheckable(true)
redb.move(10, 10)
创建一个切换按钮。我们通过使用qpushbutton 创建一个按钮,并设置其setcheckable()方法为真。
redb.clicked[bool].connect(self.setcolor)
当我们点击切换按钮时一个信号连接到我们定义的方法。我们使用一个布尔值操作点击信号。
source = self.sender()
我们得到切换按钮的信息(也就是点击了哪个按钮)。
if source.text() == '红':
self.col.setred(val)
如果是红色按钮,我们相应地更新颜色的红色部分。
self.square.setstylesheet('qframe { background-color:%s }' %
self.col.name())
我们使用样式表来改变背景颜色。
程序执行后
相关推荐:
pyqt5每天必学之布局管理
pyqt5每天必学之带有标签的复选框
pyqt5每天必学之创建窗口居中效果
以上就是pyqt5每天必学之切换按钮_python的详细内容。