QMessageBox.setIcon() 没有设置图标
QMessageBox.setIcon() doesn't set the icon
我正在使用 PyQt4 编写一个显示 QMessageBox
to give the user a warning. I'm trying to set a default icon using setIcon()
的程序,但它没有显示。
我正在使用 Python 2.7 和 PyQt4 4.11.4。
这是一个例子:
import sys
from PyQt4.QtGui import QApplication, QMessageBox
app = QApplication(sys.argv)
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("Where is my icon?")
msg.exec_()
我做错了什么吗?
编辑: 根据@mata 的要求,这是我当前的输出:
如果我在 Qt 之外寻找特定图像,它会按预期工作:
import sys
from PyQt4.QtGui import QApplication, QMessageBox, QPixmap, QImage
from PyQt4.QtCore import Qt
import urllib
url = 'http://www.google.com/images/srpr/logo1w.png'
data = urllib.urlopen(url).read()
app = QApplication(sys.argv)
image = QImage()
image.loadFromData(data)
pixmap = QPixmap(image).scaledToHeight(32, Qt.SmoothTransformation)
msg = QMessageBox()
msg.setIconPixmap(pixmap)
msg.setText("There is an icon from the Internet here!")
msg.exec_()
并且输出:
我刚刚尝试使用 Python 3 和 PyQt5,它可以工作。代码略有改动:
import sys
from PyQt5.QtWidgets import QApplication, QMessageBox
app = QApplication(sys.argv)
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("Where is my icon?")
msg.exec_()
我正在使用 PyQt4 编写一个显示 QMessageBox
to give the user a warning. I'm trying to set a default icon using setIcon()
的程序,但它没有显示。
我正在使用 Python 2.7 和 PyQt4 4.11.4。
这是一个例子:
import sys
from PyQt4.QtGui import QApplication, QMessageBox
app = QApplication(sys.argv)
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("Where is my icon?")
msg.exec_()
我做错了什么吗?
编辑: 根据@mata 的要求,这是我当前的输出:
如果我在 Qt 之外寻找特定图像,它会按预期工作:
import sys
from PyQt4.QtGui import QApplication, QMessageBox, QPixmap, QImage
from PyQt4.QtCore import Qt
import urllib
url = 'http://www.google.com/images/srpr/logo1w.png'
data = urllib.urlopen(url).read()
app = QApplication(sys.argv)
image = QImage()
image.loadFromData(data)
pixmap = QPixmap(image).scaledToHeight(32, Qt.SmoothTransformation)
msg = QMessageBox()
msg.setIconPixmap(pixmap)
msg.setText("There is an icon from the Internet here!")
msg.exec_()
并且输出:
我刚刚尝试使用 Python 3 和 PyQt5,它可以工作。代码略有改动:
import sys
from PyQt5.QtWidgets import QApplication, QMessageBox
app = QApplication(sys.argv)
msg = QMessageBox()
msg.setIcon(QMessageBox.Warning)
msg.setText("Where is my icon?")
msg.exec_()