[Qt-interest] Basic question on QWidget

Abhishek Patil abhishekworld at gmail.com
Fri Jan 1 16:57:35 CET 2010


Hi Nitin,
so what i get from your description ...

On Friday 01 Jan 2010 7:51:57 pm Nitin Mahajan wrote:
> HI!
> 
> I have a basic question about QWidget.
> 
> I have derived a class A from QWidget and class B also from QWidget.
> 
> Class B has a HBoxLayout and has only QSlider object added to it.
> 
> In class A's constructor When I crate a object of class B with parent as A,
> I can see only the slider and not the Widget B itself. I do a proper
>  setGeometry for B, but it changes only the length of slider and does not
>  show Widget B at all.
till here i came up with this program...
/*Test.h*/
#include <QWidget>
#include <QHBoxLayout>
#include <QSlider>

class A : public QWidget
{
  public:
  A(QWidget* parent=0);
  ~A();
};

class B : public QWidget
{
  public:
  B(QWidget* parent=0);
  ~B();

  private:
  QHBoxLayout* layout;
  QSlider* slider;
};

/*Test.cpp*/

#include <QWidget>
#include "test.h"

class B;

A::A(QWidget* parent)
  :QWidget(parent)
{
  B* obj = new B(this);
}

A::~A(){}

B::B(QWidget* parent)
  :QWidget(parent)
{
  layout = new QHBoxLayout(this);
  slider = new QSlider(this);
  layout->addWidget(slider);
}

B::~B(){}

/* main.cpp*/

#include <QApplication>
#include "test.h"

int main(int argc, char** argv)
{
  QApplication app(argc,argv);
  A a;
  a.show();
  return app.exec();
}

in above program B is your custom widget which show "QSlider in QHBoxLayout "  
so if you create an object of B in A (  B* obj = new B(this); ) where parent of 
B is A  obviously  B will get inside A as the line B* obj = new B(this); in A 
Constructor says paint B inside (A) (not the exact meaning but for your 
understanding). so if u remove Slider form B, B is getting printed inside A but 
theres nothing to show (as theres no slider or something else) so how you will 
get something to see.


> When I remove Slider from B, I cannot see B's widget at all bing displayed
>  as a Child of A.
> 
> Now I created one more object directly from QWidget and set A as parent. It
>  shows, where as if the child is derived from QWidget it does not show up
>  at all. Can someone please give me some pointers towards whats the basic
>  thing that is going wrong here?

could your please explain this part .... code will be more useful.. 

> regards
> 
> -Nitin
> 
> 
> 
> 
>       New Email names for you!
> Get the Email name you&#39;ve always wanted on the new @ymail and
>  @rocketmail. Hurry before someone else does!
> http://mail.promotions.yahoo.com/newdomains/aa/
> 
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
> 

enjoy
- Abhishek 



More information about the Qt-interest-old mailing list