PyQt5标签被切断

2022-01-12 00:00:00 python pyqt pyqt5 qlabel

问题描述

当我运行这个程序时,我的部分标签被切断了.有没有什么办法解决这一问题?我猜它与 setFont 有关,因为当我删除 l1.setFont 时,所有文本都会显示.如果可能,请列出不会过多改变 GUI 的解决方案.

When I run this program, parts of my label gets cut off. Is there any way to fix this? I'm guessing it has to do with setFont, because when I remove l1.setFont all the text shows. If possible, please list solutions that doesn't alter the GUI too much.

import sys
from PyQt5 import QtGui, QtWidgets, QtCore, Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class App(QtWidgets.QMainWindow):
    def __init__(self):
    super(App, self).__init__()
    self.setWindowTitle('Test GUI')
    self.setWindowIcon(QtGui.QIcon('logo.png'))
    self.setGeometry(800, 500, 500, 500)
    self.ui()

def ui(self):    
    l1 = QtWidgets.QLabel(self)
    l1.setText('Text')
    l1.setFont(QtGui.QFont('Arial', 50))  
    l1.move(100, 100)

    self.show()

def main():
    app = QtWidgets.QApplication(sys.argv)
    GUI = App()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()


解决方案

既然你改变了字体的大小,你必须调整字体的大小,你必须使用 adjustSize():

Since you have changed the size of the font you must adjust the size for that you must use adjustSize():

def ui(self):    
    l1 = QtWidgets.QLabel(self)
    l1.setText('Text')
    l1.setFont(QtGui.QFont('Arial', 50)) 
    l1.adjustSize() 
    l1.move(100, 100)
    self.show()

相关文章