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

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

為什么標簽沒有完全顯示?

為什么標簽沒有完全顯示?

慕哥6287543 2022-10-18 16:43:31
我正在學習如何使用 PyQt5,我遇到了“我的第一個標簽”沒有在我的屏幕上完成顯示的問題。運行代碼后顯示:代碼:from PyQt5 import QtWidgets, QtCore, QtGuifrom PyQt5.QtCore import *from PyQt5.QtGui  import *from PyQt5.QtWidgets import QApplication, QMainWindowimport sysQtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) #enable highdpi scalingQtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True) #use highdpi iconsdef window():  app = QApplication(sys.argv)  win = QMainWindow()  win = QMainWindow()  win.setGeometry(200, 200, 400, 400)  win.setWindowTitle("Tech with Aeijan")  label = QtWidgets.QLabel(win)  label.setText("my first label!")  label.move(50,50)  win.show()  sys.exit(app.exec_())window()
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

QLabel 根據(可能的)父布局管理器調整其內容,但您沒有使用任何內容,因此它不知道如何正確顯示自己或調整其大小來做到這一點。

最簡單的解決方案是調用label.adjustSize(),這將導致標簽自身調整大小,以便能夠顯示其內容。

但是,這不是一個好主意:您正在嘗試為小部件使用固定位置(由于很多原因,這通常被認為是一件壞事);結果將是,如果標簽文本太大并且用戶調整窗口大小,文本將不會完全可見,標簽也不知道如何調整大小或最終包裝其內容以確保所有顯示其文本。

更好的方法是使用布局管理器,但這是為更簡單的小部件(如 QWidget 或 QDialog)保留的解決方案;QMainWindow不能那樣工作,它需要設置一個中央小部件以確保其內容得到正確顯示和管理。

在您的情況下,您可以簡單地使用self.setCentralWidget(label),但這會阻止您將任何其他小部件添加到您的窗口。

應該使用“容器”小部件,并且該小部件將設置為主窗口的中心;然后您可以為該小部件設置布局并為其添加標簽:

def window():

    app = QApplication(sys.argv)

    win = QMainWindow()


    central = QWidget()

    win.setCentralWidget(central)


    layout = QVBoxLayout()

    central.setLayout(layout)

    # alternatively, the above is the same as this:

    # layout = QVBoxLayout(central)


    label = QtWidgets.QLabel(win)

    label.setText("my first label!")

    layout.addWidget(label)


    # ...


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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