class MyWidget { vector< Childs * > body...}
...float zoom_factor = 2;vector< Childs* >::iterator Run = body.begin();for ( ; Run != body.end(); ++Run ) { int ix = (*Run)->get_x_coord(); int iy = (*Run)->get_y_coord(); (*Run)->move( zoom_factor * ix, zoom_factor * iy;}
class MyWidget: public QWidget{public: MyWidget(QWidget * parent = 0);};MyWidget::MyWidget(QWidget * parent): QWidget(parent){ //Когда создаешь детей также не забудь передать им указатель на родительский виджет!!! QWidget * childWidget = new QWidget(this);}
void SpaceMap::addStarSystem( const star_system& obj ){ x_offset = -1200; y_offset = -761; StarSystem *tmp_obj = new StarSystem( obj, x_offset, y_offset, this); body.push_back( tmp_obj ); return;}
StarSystem::StarSystem( const star_system& obj, const int x_offset, const int y_offset, QWidget *parent, const char *name ) : QLabel( parent ){ body = obj; resize( 20,20 ); setText(tr("Test2")); normal = new QPixmap("1.png"); highlighted = new QPixmap("2.png"); setPixmap(*normal); is_highlighted = false; int x = body.ix - x_offset; int y = body.iy - y_offset; move( QPoint(x,y) ); // setting-up hint message QString s_x = QString::number(body.ix); QString s_y = QString::number(body.iy); QString s_name = body.title.c_str(); setToolTip( QString( s_name + " " + s_x + ' ' + s_y)); connect( this, SIGNAL(system_is_selected(QString&)), parent, SLOT(select_system(QString&)));}
(*Run)->move( 100, 100 );
int ix = (*Run)->body.ix + x_offset;int iy = (*Run)->body.iy + y_offset;(*Run)->move( ix, iy );