Python qt的stackedWidget,显示不了截图的图片,但是在单独的界面又可以显示,这是什么原因导,以及怎么解决
时间: 2023-06-13 16:07:05 浏览: 101
可能是因为在 stackedWidget 中显示截图的图片时,路径发生了变化。你可以尝试使用绝对路径来加载图片,以确保路径的正确性。具体来说,你可以使用 QCoreApplication.applicationDirPath() 来获取应用程序的根目录,然后将其与图片文件名拼接起来,如下所示:
```python
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget, QStackedWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.stackedWidget = QStackedWidget(self)
# 创建第一个页面
page1 = QWidget(self)
label1 = QLabel(page1)
pixmap1 = QPixmap(QCoreApplication.applicationDirPath() + "/image.png")
label1.setPixmap(pixmap1)
layout1 = QVBoxLayout(page1)
layout1.addWidget(label1)
self.stackedWidget.addWidget(page1)
# 创建第二个页面
page2 = QWidget(self)
label2 = QLabel(page2)
pixmap2 = QPixmap(QCoreApplication.applicationDirPath() + "/image.png")
label2.setPixmap(pixmap2)
layout2 = QVBoxLayout(page2)
layout2.addWidget(label2)
self.stackedWidget.addWidget(page2)
# 显示第一个页面
self.stackedWidget.setCurrentIndex(0)
```
如果使用绝对路径仍然无法解决问题,你可以尝试使用相对路径,并确保图片文件与你的代码文件在同一个目录中。
阅读全文