This tutorial will show you how to deal with this widget.
First, you need to know more about QLCDNumber, so take a look here.
The first example is very simple and will show just one digit, see:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Digit(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setWindowTitle("One digit")
lcd = QLCDNumber(self)
app = QApplication(sys.argv)
ls = Digit()
ls.show()
sys.exit(app.exec_())
Now, the next step is to send data to this digit.One good example is with one slider.
The position of the slider will be send to the QLCDNumber.
How can do that? Will need a vbox to put the QLCDNumber and the slider and then using signal and slot.
Let's see the example:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Digit(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
#make widgets
self.setWindowTitle("One digit with slider")
lcd = QLCDNumber(self)
slider = QSlider(Qt.Horizontal, self)
#set layout variable vbox
vbox = QVBoxLayout()
#add widgests
vbox.addWidget(lcd)
vbox.addWidget(slider)
#set the vbox to layout
self.setLayout(vbox)
#create signal to slot
self.connect(slider, SIGNAL("valueChanged(int)"),lcd, SLOT("display(int)"))
self.resize(200, 170)
if __name__ == '__main__':
app = QApplication(sys.argv)
ls = Digit()
ls.show()
sys.exit(app.exec_())
In the source code in the example, you can see the comments that mark the steps of creating and executing the python script.Let's try another example with a digital clock:
import sys
from PyQt4 import QtCore, QtGui
class digital_clock(QtGui.QLCDNumber):
def __init__(self, parent=None):
super(digital_clock, self).__init__(parent)
self.setSegmentStyle(QtGui.QLCDNumber.Filled)
#the defaul is 5 , change to 8 for seconds
self.setDigitCount(5)
self.setWindowTitle("Digital Clock")
self.resize(200, 70)
timer = QtCore.QTimer(self)
timer.timeout.connect(self.showTime)
timer.start(1000)
self.showTime()
def showTime(self):
time = QtCore.QTime.currentTime()
text = time.toString('hh:mm')
#if you setDigitsCount to 8
#uncomment the next line of code
#text = time.toString('hh:mm:ss')
if (time.second() % 2) == 0:
text = text[:2] + ' ' + text[3:]
self.display(text)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
clock = digital_clock()
clock.show()
sys.exit(app.exec_())
If you want to see seconds, then you need to set the digit count of the LCD to 8 ( it's 5 by default) of setDigitCount.Also you need to uncomment this line of code: text = time.toString('hh:mm:ss') and comment the old one.
You can solve multiple issues with this widget, like: stopwatch, timer, clock down timer ...