Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] Wyswietlanie obrazków

Ostatnio zmodyfikowano 2015-04-02 21:07
Autor Wiadomość
killermannnnn
Temat założony przez niniejszego użytkownika
[Qt] Wyswietlanie obrazków
» 2015-04-02 15:24:16
Chciałbym w oknie głównym wyświetlić dwa obrazki i umieścić je w jakimś layoucie ale mam problem.
Obrazek wyświetla sie przy takim kodzie:

C/C++
#include "mainwindow.h"
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include <QVBoxLayout>
#include <QPixmap>

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    MainWindow * w = new MainWindow;
   
    QGraphicsScene * scene = new QGraphicsScene;
    QGraphicsView * view = new QGraphicsView( scene );
    QGraphicsPixmapItem * item = new QGraphicsPixmapItem( QPixmap( "c:\\test.jpg" ) );
   
    scene->addItem( item );
   
    view->setParent( w );
   
    w->show();
   
    return a.exec();
}

Ale gdy chcę dodac do layouta to juz go nie widać...
C/C++
#include "mainwindow.h"
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include <QVBoxLayout>
#include <QPixmap>

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    MainWindow * w = new MainWindow;
   
    QVBoxLayout * lay = new QVBoxLayout( w );
    QGraphicsScene * scene = new QGraphicsScene;
    QGraphicsView * view = new QGraphicsView( scene );
    QGraphicsPixmapItem * item = new QGraphicsPixmapItem( QPixmap( "c:\\test.jpg" ) );
   
    scene->addItem( item );
    lay->addWidget( view );
   
    w->show();
   
    return a.exec();
}


Gdzie jest problem ?
P-129926
b00rt00s
» 2015-04-02 17:16:29
1. Twój program ma wyciek pamięci bo tworzysz zmienną w na stercie i jej nigdzie nie usuwasz.

2. Obiekty klasy QMainWindow maja swój własny layout i nie można go zmienić. Uruchom swój program spod konsoli, a zobaczysz stosowny komunikat.

3. Dodaj layout do widgetu view i ustaw go jako centralny widget okna.

Poprawny kod:

C/C++
#include "mainwindow.h"
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include <QVBoxLayout>
#include <QPixmap>

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    MainWindow w;
   
    QGraphicsScene * scene = new QGraphicsScene( & w );
    QGraphicsView * view = new QGraphicsView( scene );
    view->setLayout( new QVBoxLayout );
   
    QGraphicsPixmapItem * item = new QGraphicsPixmapItem( QPixmap( "c:\\test.jpg" ) );
    scene->addItem( item );
   
   
    w.setCentralWidget( view );
    w.show();
   
    return a.exec();
}
P-129933
killermannnnn
Temat założony przez niniejszego użytkownika
» 2015-04-02 17:39:08
Dziękuje :)
P-129941
kubawal
» 2015-04-02 21:07:58
O ile pamiętam w qt można używać QLabel'i do wyświetlania obrazków i filmów
P-129948
« 1 »
  Strona 1 z 1