PyQt5 QSpinBox - Блокирующие сигналы
В этой статье мы увидим, как мы можем заблокировать сигналы счетчика. Блокирующие сигналы означают, что методы, подключенные к счетчику, не будут получать сигналы, например, когда мы добавляем к нему действие, когда его значение изменяется, это действие не будет работать. Сигналы, излучаемые при блокировке, не буферизуются.
Note : The destroyed()
signal will be emitted even if the signals for the spin box have been blocked
Для этого мы используем метод blockSignals.
Syntax : spin_box.blockSignals(True)
Argument : It takes bool as argument
Action Performed : It blocks the emitting signals of spin box
Below is the implementation
# 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 spin box self .spin = QSpinBox( self ) # setting geometry to spin box self .spin.setGeometry( 100 , 100 , 250 , 40 ) # setting prefix to spin self .spin.setPrefix( "Prefix " ) # setting suffix to spin self .spin.setSuffix( " Suffix" ) # adding action to the spin box self .spin.valueChanged.connect( self .do) # blocking signals of the spin box self .spin.blockSignals( True ) # creating a label self .label = QLabel( "Label " , self ) # setting geometry to the label self .label.setGeometry( 100 , 200 , 300 , 30 ) # method called by spin box def do( self ): # setting text to the label self .label.setText( "Action done" ) # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App. exec ()) |
Выход :
Текст метки не изменился, поскольку сигналы счетчика заблокированы, поэтому они не могут вызвать сигнал изменения значения
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.