在 PyQt4 中自动调整标签大小



我在 PyQt4 中添加了一个包含图像的标签。此图像在未最大化时完全适合窗口。我的目标是标签应该自动调整大小并完全适合窗口,即使最大化也是如此。我的代码如下:

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1047, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(0, 0, 1081, 551))
self.label.setText(_fromUtf8(""))
self.label.setPixmap(QtGui.QPixmap(_fromUtf8("Capture.PNG")))
self.label.setObjectName(_fromUtf8("label"))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

请告诉我如何修改我的代码?

您必须执行以下操作:

  • centralwidget设置为QMainWindowcentralWidget
  • 使用布局将QLabel放置在centralwidget内。
  • 启用QLabelScaledContents属性。

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.centralwidget = QtGui.QWidget(MainWindow)
MainWindow.setCentralWidget(self.centralwidget) # <--
lay = QtGui.QVBoxLayout(self.centralwidget)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setPixmap(QtGui.QPixmap("Capture.PNG"))
self.label.setScaledContents(True) # <--
lay.addWidget(self.label) # <--

最新更新