python - 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
为centralWidget
的QMainWindow
。 - 使用布局将
QLabel
内部放置在centralwidget
. - 启用 的
ScaledContents
属性QLabel
。
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) # <--
推荐阅读
- laravel - Laravel - 如何计算两天之间的假期数
- html - 如何创建边框底部?
- excel - 运行循环宏时 Excel 崩溃
- python - 将英国邮政编码映射到地理边界以进行绘图
- selenium - Selenium webdriver中的隐式等待如何工作
- jquery - 通过 jQuery AJAX 发送时,“&”之后的所有内容都会丢失
- performance - Unity Profiler:Update.Preloading cpu 峰值
- elasticsearch - Elasticsearch:NEST 中具有基数的复合聚合
- python - 在 Python 中计算和使用欧几里得距离
- json - 如何验证子属性在对象的所有子项中仅设置一次