[Qt] Wyswietlanie obrazków
Ostatnio zmodyfikowano 2015-04-02 21:07
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: #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ć... #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 ? |
|
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: #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(); } |
|
killermannnnn Temat założony przez niniejszego użytkownika |
» 2015-04-02 17:39:08 Dziękuje :) |
|
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 |
|
« 1 » |