1

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_())
eyllanesc
  • 235,170
  • 19
  • 170
  • 241
tckraomuqnt
  • 470
  • 4
  • 17

0 Answers0