PyQt5 QLabel – 根据用户禁用不透明效果
在本文中,我们将看到如何根据用户说明禁用标签的不透明度效果,这样当用户选中单选按钮时,不透明度效果应该消失,而当用户取消选中单选按钮时,它应该再次出现。
为了使不透明效果禁用和启用,我们使用setEnable
方法。
In order to do this we have to do the following :
1. Create a label
2. Create an opacity effect object and set it to the label
3. Create a radio button
4. Add action to the radio button
5. Inside the action check if radio button is checked, it checked make opacity effect disable
6. Else make opacity effect enable
Syntax : opacity_effect.setEnabled(False)
Argument : It takes bool as argument
Return : It returns none
下面是实现
# importing libraries
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
# setting title
self.setWindowTitle("Python ")
# setting geometry
self.setGeometry(100, 100, 600, 400)
# calling method
self.UiComponents()
# showing all the widgets
self.show()
# method for widgets
def UiComponents(self):
# creating label
label = QLabel("Label", self)
# setting geometry to the label
label.setGeometry(200, 100, 150, 60)
# setting alignment to the label
label.setAlignment(Qt.AlignCenter)
# setting font
label.setFont(QFont('Arial', 15))
# setting style sheet of the label
label.setStyleSheet("QLabel"
"{"
"border : 2px solid green;"
"background : lightgreen;"
"}")
# creating a opacity effect
self.opacity_effect = QGraphicsOpacityEffect()
# setting opacity level
self.opacity_effect.setOpacity(0.3)
# adding opacity effect to the label
label.setGraphicsEffect(self.opacity_effect)
# creating a radio button
self.button = QRadioButton("Disable opacity effect", self)
# setting geometry
self.button.setGeometry(200, 200, 300, 30)
# adding action to the button
self.button.clicked.connect(self.do_something)
# action called by the radio button
def do_something(self):
# radio is checked ?
if self.button.isChecked() == True:
# making opacity effect disable
self.opacity_effect.setEnabled(False)
else:
# making opacity color effect enable
self.opacity_effect.setEnabled(True)
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())
输出 :