In this article we will see how to create a digital clock using PyQt5, this digital clock will basically tells the current time in the 24 hour format.
In order to create a digital clock we have to do the following:
- Create a vertical layout
- Create label to show the current time and put it in the layout and align it to the center.
- Create a QTimer object.
- Add action to the QTimer object such that after every 1sec action method get called.
- Inside the action method get the current time and show that time with the help of label.
Below is the implementation:
Python3
# importing required librarie import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtWidgets import QVBoxLayout, QLabel
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QTimer, QTime, Qt
class Window(QWidget):
def __init__( self ):
super ().__init__()
# setting geometry of main window
self .setGeometry( 100 , 100 , 800 , 400 )
# creating a vertical layout
layout = QVBoxLayout()
# creating font object
font = QFont( 'Arial' , 120 , QFont.Bold)
# creating a label object
self .label = QLabel()
# setting center alignment to the label
self .label.setAlignment(Qt.AlignCenter)
# setting font to the label
self .label.setFont(font)
# adding label to the layout
layout.addWidget( self .label)
# setting the layout to main window
self .setLayout(layout)
# creating a timer object
timer = QTimer( self )
# adding action to timer
timer.timeout.connect( self .showTime)
# update the timer every second
timer.start( 1000 )
# method called by timer
def showTime( self ):
# getting current time
current_time = QTime.currentTime()
# converting QTime object to string
label_time = current_time.toString( 'hh:mm:ss' )
# showing it to the label
self .label.setText(label_time)
# create pyqt5 app App = QApplication(sys.argv)
# create the instance of our Window window = Window()
# showing all the widgets window.show() # start the app App.exit(App.exec_()) |
Output :
Code Explanation:
- The code starts by importing the required libraries.
- Then it creates a class called Window and initializes it with __init__() method.
- Next, the code sets the geometry of the main window to 100×100 pixels and 800×400 pixels respectively.
- It then creates a vertical layout object which is used for arranging widgets in order vertically on the screen.
- The next step is creating font object using QFont class from PyQt5 library followed by creating a label object using QLabel class from PyQt5 library.
- Finally, the code adds a label to the layout and sets its alignment to Qt’s align center option before setting font of label to Arial font with a size 120 points bold style.
- The code is a simple example of how to create a window and show it.