问题描述
当我运行这个程序时,我的部分标签被切断了.有没有什么办法解决这一问题?我猜它与 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()