Obrazek w komórce tabeli - QT

0

Przeszukałem już kilkanaście tematów i dokumentację, ale nadal nie mogę sobie poradzić. Potrzebuję mieć obrazek w komórce tabeli. W folderze z plikami main.cpp itd. mam folder img, a w nim icc.png. Mam taką funkcję:

 
void MainWindow::on_Plansza_cellClicked(int row, int column)
{
    QTableWidgetItem *el = new QTableWidgetItem;
    QIcon obrazek(":/img/icc.png");
    el->setIcon(obrazek);
    ui->Plansza->setItem(row,column,el);
}

Plansza to TableWidgetItem

Niestety komórka po kliknięciu w nią robi się pusta, zamiast pokazać obrazek. To samo dzieje się kiedy podaję ścieżkę nieistniejącego obrazka. Byłbym wdzięczny za radę.

0

Dodałeś obrazek do zasobów?

0

Nie wiem co to znaczy, ale jeżeli chodziło o przeciągnięcie z folderu do listy z plikami w QT Creatorze to właśnie to zrobiłem i nic to nie zmieniło.

0

Na jakimś forum napisali, żeby zrobić tak

 
    el->setData(Qt::DecorationRole, QPixmap("icc.png").scaled(10, 10, Qt::KeepAspectRatio, Qt::SmoothTransformation));

ale jest nadal to samo, tylko że w programie w takiej sekcji z informacjami przy każdym kliknięciu wyskakuje linijka "QPixmap: Pixmap is a null pixmap"

0

Wygooglałem co to te zasoby, ale mam "error 1" i nie wiem o co chodzi (na pewno nie o spacje w ścieżce)

0

stwórz jakiegoś QLabela na formatce,dodaj tam mu ten obrazek poprzez setPixmap() i daj znać,czy się on pojawił

0
ui->label->setPixmap(QPixmap("icc.png"));

Nie pojawił się. Label tak samo robi się pusty. Próbowałem też w jpgiem i jest to samo. Te zasoby już ogarnąłem, ale też nic nie zmieniają.

0

Przeniosłem plik do folderu z mainem i zmieniłem ścieżkę na ":asd.jpg" i już działa bez dodawania do zasobów. Dzięki za rady.

0

A może jednak potrzebne są te zasoby. Podsyłam link jakby ktoś tu trafił z googli kiedyś: http://harmattan-dev.nokia.com/docs/library/html/qt4/resources.html

0

Plik z grafiką dodać musisz do zasobów.
Jak plik jest w zasobach to jako ścieżkę podaje się z ":"
Przykład:

 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
     <file>images/copy.png</file>
     <file>images/cut.png</file>
     <file>images/new.png</file>
     <file>images/open.png</file>
     <file>images/paste.png</file>
     <file>images/save.png</file>
 </qresource>
 </RCC>

// w kodzie dajesz
QPixmap( ":/images/copy.png" );

Inną sprawą może być brak pluginu od gif jpg itp. Jak to sprawdzić czy problem jest z pluginem? Na Formatkę wrzuć QToolButton i wybierz mu ikonę z zasobów. Uruchom program i zobacz czy obrazek został załadowany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1