[Qt-interest] nesting QGraphicsview inside QWidget

Martin Schröer gordon at gordonswelt.de
Sun Mar 8 17:50:58 CET 2009


Well, i should confess that i have a Phonon media object sitting in the 
GraphicsView scene ...
maybe the question should therefore read: "How do i achieve auto scaling 
the scene containing
a phonon rendered video according to the layout set for the containing 
widget".

Another question, different, but also concerning this is - how do i 
render a button on top of
the video content inside the GraphicsView object ? Like having a 'start' 
or 'play' button sitting
on top ...


Martin

Martin Schröer schrieb:
> Yes, adding
>
>     QGridLayout *mainLayout = new QGridLayout;
>     mainLayout->addWidget(&view);
>     setLayout(mainLayout);
>     view.show();
>
> did the trick.
>
> Now, there's another problem:
> while now being embedded in a widget, the view refuses to dynamically 
> change size,
> it displays its contents ignoring the widget size.
>
> view.setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
> and friends also chage nothing.
>
>
>
> Luc Devallonné schrieb:
>   
>> Martin,
>>
>> The problem is that the QGraphicsView is no added to any layout, may
>> want to try something like
>>
>> layout()->addWidget(&view) before the show() in the init()
>>
>> Luc
>>
>> On Sun, Mar 8, 2009 at 4:40 PM, Martin Schröer <gordon at gordonswelt.de> wrote:
>>   
>>     
>>> Here we go:
>>>
>>> the GraphicsView is nested inside imemMediaWidget class, which is used in
>>> the main app:
>>>
>>>   mediaWid = new imemMediaWidget();
>>>     QGridLayout *mainLayout = new QGridLayout;
>>>   mainLayout->addWidget(loadButton);
>>>   mainLayout->addWidget(mediaWid, 1, 0, 1, 2);
>>>   // mainLayout->addWidget(videoWidget, 1, 0);
>>>   // mainLayout->addWidget(mediaWid, 1, 1);
>>> mainLayout->addWidget(infoButton, 2, 0);
>>>   mainLayout->addWidget(timeLabel, 2, 1);
>>>   mainLayout->addWidget(infoLabel,3, 0, 1, 2);
>>>   setLayout(mainLayout);
>>>
>>> the widget itself:
>>>
>>> <header>
>>>
>>> class imemMediaWidget : public QWidget
>>> {
>>>   Q_OBJECT
>>>   QGraphicsScene scene;
>>>   QGraphicsView view;
>>>  public:
>>>   imemMediaWidget(QWidget *parent = 0);
>>>  protected:
>>>  private:
>>>   void init();
>>>   CustomProxy *proxy;
>>>  private slots:    };
>>>
>>> plus it's implementation ( stripped ):
>>>
>>> #include "imemMediaWidget.h"
>>>
>>>
>>> imemMediaWidget::imemMediaWidget(QWidget *parent) : QWidget(parent)
>>> {
>>>   init();
>>> }
>>>
>>> void imemMediaWidget::init()
>>> {
>>>   view.setScene(&scene);
>>>     scene.setSceneRect(scene.itemsBoundingRect());
>>>   view.setBackgroundBrush(QPixmap("No-Ones-Laughing-3.jpg"));
>>>   view.show();
>>> }
>>>
>>> Luc Devallonné schrieb:
>>>     
>>>       
>>>> Strange behavior, could you post some code that demonstrates the problem ?
>>>>
>>>> Luc
>>>>
>>>> On Sun, Mar 8, 2009 at 4:14 PM, Martin Schröer <gordon at gordonswelt.de>
>>>> wrote:
>>>>
>>>>       
>>>>         
>>>>> Hmm ... when i try to do so ( i have some graphicsview code inside a
>>>>> QWidget
>>>>> class implementation), it shows the GraphicsView content outside of the
>>>>> window containing the widget in a own window ... ?
>>>>>
>>>>> Luc Devallonné schrieb:
>>>>>
>>>>>         
>>>>>           
>>>>>> Martin,
>>>>>>
>>>>>> Actually QGraphicsView is a QWidget (QAbstractScrollArea -> QFrame ->
>>>>>> QWidget), and as such can be layout as any other QWidget.
>>>>>>
>>>>>> Luc
>>>>>>
>>>>>> On Sun, Mar 8, 2009 at 3:51 PM, Martin Schröer <gordon at gordonswelt.de>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>           
>>>>>>             
>>>>>>> Is it possible to have a QGraphicsview nested inside a QWidget, so
>>>>>>> the resulting Widget could be placed, used and layouted like any other
>>>>>>> widget ?
>>>>>>>
>>>>>>> Martin
>>>>>>> _______________________________________________
>>>>>>> Qt-interest mailing list
>>>>>>> Qt-interest at trolltech.com
>>>>>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>             
>>>>>>>               
>>>>>> _______________________________________________
>>>>>> Qt-interest mailing list
>>>>>> Qt-interest at trolltech.com
>>>>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>>>>
>>>>>>
>>>>>>           
>>>>>>             
>>>>>         
>>>>>           
>>>> _______________________________________________
>>>> Qt-interest mailing list
>>>> Qt-interest at trolltech.com
>>>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>>>
>>>>       
>>>>         
>>>     
>>>       
>> _______________________________________________
>> Qt-interest mailing list
>> Qt-interest at trolltech.com
>> http://lists.trolltech.com/mailman/listinfo/qt-interest
>>   
>>     
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>   




More information about the Qt-interest-old mailing list