PyQt5 – 切换按钮
在PyQt5中,切换按钮基本上就是一个特殊状态的按钮。按键是一个按钮,当我们按下它时,它做一些任务,然后回到正常状态,它类似于键盘上的按键,当我们按下它时,它做一些事情,当我们释放它时,它又回到原来的状态。
ToggleButton 是按钮的一种类型,但它有两种状态,即开和关,当我们按下它时,它不会回到原来的状态。切换按钮类似于电力开关,当我们按下它时,它保持开启状态,当我们关闭它时,它保持关闭状态。
为了创建切换按钮,我们必须做以下 工作。
- 创建一个按钮。
- 设置可检查性为True,即如果它被按下,就会被检查,如果它再次被按下,就会被取消检查,类似于复选框。
- 设置当按钮被按下时被调用的方法。
- 在调用方法中检查按钮是否被选中。
- 如果按钮被选中,就改变它的颜色,否则就给它设置默认颜色。
下面是实现方法。
# importing the required libraries
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
# set the title
self.setWindowTitle("Python")
# setting geometry
self.setGeometry(100, 100, 600, 400)
# creating a push button
self.button = QPushButton("Toggle", self)
# setting geometry of button
self.button.setGeometry(200, 150, 100, 40)
# setting checkable to true
self.button.setCheckable(True)
# setting calling method by button
self.button.clicked.connect(self.changeColor)
# setting default color of button to light-grey
self.button.setStyleSheet("background-color : lightgrey")
# show all the widgets
self.update()
self.show()
# method called by button
def changeColor(self):
# if button is checked
if self.button.isChecked():
# setting background color to light-blue
self.button.setStyleSheet("background-color : lightblue")
# if it is unchecked
else:
# set background color back to light-grey
self.button.setStyleSheet("background-color : lightgrey")
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())