I try to subclass QLabel, My intention to passing values and display Labels(like the normal labels). But it does not give the desired result. In my code use QLabel also, It works fine. How to resolve it?
import sys
from PyQt5.QtWidgets import QWidget,QApplication,QLabel,QVBoxLayout
from PyQt5.QtGui import QFont
class MyLabel(QLabel):
def __init__(self,mylabel_text,mylabel_fontname,mylabel_fontsize,mylabel_fontweight,parent=None):
super().__init__(parent)
font = QFont()
self.mylabel_fontnme = mylabel_fontname
self.mylabel_fontsize = mylabel_fontsize
self.mylabel_fontweight = mylabel_fontweight
fontname = ('"' + mylabel_fontname + '"')
font.setFamily(fontname)
font.setPointSize(self.mylabel_fontsize)
font.setWeight(self.mylabel_fontweight)
# font.setLetterSpacing(QFont.AbsoluteSpacing.space)
self.setFont(font)
class example(QWidget):
def __init__(self):
super(). __init__()
self.setWindowTitle("My Widget Example")
self.lbl1 = MyLabel(mylabel_text="example",mylabel_fontname="Trebuchet MS",mylabel_fontsize=10,
mylabel_fontweight=60)
self.lbl1.setFixedSize(600,200)
self.lbl1.adjustSize()
self.lbl2 = QLabel('<font color="red"><u>F</u></font><font color="black">ile</font>')
self.lbl2.setFixedSize(600,200)
self.lbl2.adjustSize()
self.vbox = QVBoxLayout()
self.vbox.addWidget(self.lbl1)
self.vbox.addWidget(self.lbl2)
self.setLayout(self.vbox)
if __name__ =="__main__":
app = QApplication(sys.argv)
mainwindow = example()
mainwindow.show()
sys.exit(app.exec_())