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 :