亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何增加/減少 PyQt5 QLabel 中的字體大小(固定大?。??

在我的代碼中,使用一個具有固定維度/大小的 QLabel。一開始,我將文本 “Hello,Python”分配給該 QLablel?,F在我想將 QLablel 的文本更改為“Hai,歡迎使用 Python”。如何減小 QLabel 的字體大小,并顯示 具有該特定區域/大小的全文(沒有任何截斷/隱藏/隱藏)?import sysfrom PyQt5.QtWidgets import *class Labelexample(QWidget):    def __init__(self):        super().__init__()        self.labl = QLabel("Hello,Python",self)        self.tbox = QLineEdit(self)        self.labl.setFixedSize(150,30)        self.tbox.setFixedSize(200,30)        self.labl.move(50,50)        self.tbox.move(140,50)        self.labl.setText("Hai, welcome to Python")        # self.labl.adjustsize()app = QApplication(sys.argv)mywin = Labelexample()mywin.show()sys.exit(app.exec_())
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

QFontMetrics 類提供字體規格信息。https://doc.qt.io/qt-5/qfontmetrics.html#QFontMetrics

嘗試一下:

import sys

from PyQt5.Qt import *



class Labelexample(QWidget):

    def __init__(self):

        super().__init__()


        text = "Hello,Python"

        self.labl = QLabel(text, self)

#        self.labl.setFixedSize(150,30)

        self.labl.setFixedWidth(150)                            # +++

        self.labl.setMinimumHeight(30)                          # +++


        self.labl.move(50,50)

        self.labl.setStyleSheet("background-color: yellow;")


        self.tbox = QLineEdit(self)

        self.tbox.setFixedSize(200,30)

#        self.tbox.move(140,50)

        self.tbox.move(200,50)

        self.tbox.returnPressed.connect(self.return_pressed)    # +++ 


        self.pointSize = 20                                     # 20

        self.fontD = self.font()

        self.fontD.setPointSize(self.pointSize)

        self.metrics = QFontMetrics(self.fontD)

        self.width = self.metrics.width(text)

        self.height = self.metrics.height()

        self.labl.setFixedWidth(self.width)

        self.labl.setFont(self.fontD)        


#        text = "Hai, welcome to Python"

#        self.labl.setText(text)                                 #         v             v

        self.labl.adjustSize()                                   # - adjustsize  + adjustSize


    def return_pressed(self):                                    # +++

        if not self.tbox.text(): 

            self.labl.setText('')

            self.labl.setFont(self.fontD)

            self.labl.adjustSize()

            return

        width = self.metrics.width(self.tbox.text())

        height = self.metrics.height()


        if not width: 

            width = 1


        koef = self.width / width

        pointSize = int(self.pointSize * koef)

        font = self.font()

        font.setPointSize(pointSize)

        self.labl.setFont(font)

        height = self.metrics.height()

        self.labl.setText(self.tbox.text())

        self.labl.adjustSize()



if __name__ == '__main__':

    app = QApplication(sys.argv)

    mywin = Labelexample()

    mywin.resize(450, 415)

    mywin.show()

    sys.exit(app.exec_())

http://img1.sycdn.imooc.com//63a173b7000109e004590450.jpg

查看完整回答
反對 回復 2022-12-20
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

采用.setFont()

例如。:

self.labl.setFont(QFont('Arial', 10))


查看完整回答
反對 回復 2022-12-20
  • 2 回答
  • 0 關注
  • 625 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號