PyQt5 QSpinBox – Adding action when object name changed
In this article we will see how we can do something the object name of the spin box is changed, object name is basically name given to the object of spin box, when we find the object in the PyQt5 application with the help of object name with the help of findChild
method. Object name can be set to the spin box with the help of setObjectName
method.
Implementation steps –
1. Create a spin box
2. Set its object name
3. Show the object name with the help of label
4. Add action to the spin box when object name is changed which make the suffix of spin box change
5. Create a push button
6. Add action to the push button change the object name of spin box
In order to add action when object name is changed we use objectNameChanged.connect
method..
Syntax : spin_box.objectNameChanged.connect(method name)
Argument : It takes method name as argument
Action performed : It will call the passed method
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 , 150 , 40 ) # setting suffix to spin self .spin.setSuffix( " Spin Box" ) # name name = "Geeky" # setting up object name self .spin.setObjectName(name) # adding action when the spin box object name is changed self .spin.objectNameChanged.connect( self .spin_method) # creating label self .label = QLabel( self ) # setting geometry self .label.setGeometry( 100 , 200 , 300 , 40 ) # getting object name get_name = self .spin.objectName() # setting text to the label self .label.setText( "Object Name : " + get_name) # creating a push button push = QPushButton( "Press" , self ) # adding action to the push button push.pressed.connect( self .push_method) # method called when object name is changed def spin_method( self ): # setting suffix self .spin.setSuffix( " Name changed" ) # method called by push button def push_method( self ): # setting object name of spin box self .spin.setObjectName( "New" ) # getting object name get_name = self .spin.objectName() # showing this new name to label self .label.setText( "Object Name : " + get_name) # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App. exec ()) |
Output :
Please Login to comment...