python - PyQt5 - 如何在 QMainWindow 类中显示图像?
问题描述
我正在尝试在 QMainWindow 类中显示图片:
from PyQt5.QtWidgets import QLabel, QMainWindow, QApplication
from PyQt5.QtGui import QPixmap
import sys
class Menu(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Title")
label = QLabel(self)
pixmap = QPixmap('capture.png')
label.setPixmap(pixmap)
self.resize(pixmap.width(), pixmap.height())
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Menu()
sys.exit(app.exec_())
但它不显示图像,只是打开窗口。我坚持QMainWindow
上课,因为我正在尝试写一些类似于绘画应用程序的东西,所以我将能够写一个菜单,我将能够在图片上写字。
任何建议,将不胜感激。
谢谢。
解决方案
QMainWindow.setCentralWidget(小部件)
将给定的小部件设置为主窗口的中心小部件。
from PyQt5.QtWidgets import QLabel, QMainWindow, QApplication, QWidget, QVBoxLayout
from PyQt5.QtGui import QPixmap
import sys
class Menu(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Title")
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
lay = QVBoxLayout(self.central_widget)
label = QLabel(self)
pixmap = QPixmap('logo.png')
label.setPixmap(pixmap)
self.resize(pixmap.width(), pixmap.height())
lay.addWidget(label)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Menu()
sys.exit(app.exec_())
推荐阅读
- netsuite - NetSuite 保存的搜索可计算金额范围内的发票
- python - 尝试安装 discord.py 时出错 - “无法为使用 PEP 517 且无法直接安装的 multidict、yarl 构建轮子”
- javascript - 如何从 React 中的不同类访问状态值?
- delphi - 如何在 Delphi 中刷新 TDBGrid 以显示新记录?
- docker - 如何将 pod/容器创建时间戳标签添加到 kubernetes docker 容器标签?
- android - 检查 NavDestination 是否代表 DialogFragment
- sql - SQL 查询根据类型获取 SQL Server 数据库中的系统函数计数
- kubernetes - Minikube 中的存储空间是如何分配的?
- pdf - Wireshark - pdf 源到实际 pdf
- r - 如何在R中将多列绘制成条形图