2010-02-18 5 views
13

Как я могу добавить или импортировать изображение в QWidget? Я нашел ключ. Я могу добавить Label и добавить Picture на эту этикетку. Мне нужны аргументы для QPicture(). Вероятно, я могу использовать, QLabel.setPicture(self.QPicture).Как добавить изображение в QWidget в PyQt4

ответ

11

QPicture не то, что вы хотите. QPicture записи и повторы QPainter команды. Что вы хотите - QPixmap. Дайте имя файла конструктору QPixmap и установите эту pixmap на метку, используя QLabel.setPixmap().

Пример реализации в Python будет:

label = QLabel() 
pixmap = QPixmap('path_to_your_image') 
label.setPixmap(pixmap) 
18

Вот код, который делает то, что вы и @erelender описали:

import os,sys 
from PyQt4 import QtGui 

app = QtGui.QApplication(sys.argv) 
window = QtGui.QMainWindow() 
window.setGeometry(0, 0, 400, 200) 

pic = QtGui.QLabel(window) 
pic.setGeometry(10, 10, 400, 100) 
#use full ABSOLUTE path to the image, not relative 
pic.setPixmap(QtGui.QPixmap(os.getcwd() + "/logo.png")) 

window.show() 
sys.exit(app.exec_()) 

QWidget Родовые не setPixmap(). Если этот подход не работает для вас, вы можете посмотреть на свой собственный виджет, который происходит от QWidget и переопределить метод paintEvent для отображения изображения.

+0

это ставит QLabel наверх всех виджетов у меня есть, как бы вы положили его за каждый виджет и всегда соответствовать ширине окна, если изменить размер? –

-1

Используйте этот фрагмент код в вашем GUI сценарии:

image = QtGui.QLabel(self) 
image.setGeometry(50, 40, 250, 250) 
pixmap = QtGui.QPixmap("C:\\address\\to\\your_image.png") 
image.setPixmap(pixmap) 
image.show()