Hi all,
I've searched and read several documents and threads regarding exact positioning of a child widget. I tried to code it but still having a problem.
Here's my code;
{
if(_mouseLeftPressed && this->objectName()=="Box_A"){ // Box_A type QLabel
this->move(mapToParent(event->pos()-_offset)); // Box_A moves as expected
_tmp=this->parentWidget()->findChild<QWidget *>("Box_B"); // Box_B type QLabel
if(_tmp){
_tmp
->move
(mapToParent
( QPoint(0, event
->pos
().
y()-_offset.
y()) ) );
// Box_B jumps around _tmp=NULL;
}
}
}
void BoxExample::mouseMoveEvent(QMouseEvent *event)
{
if(_mouseLeftPressed && this->objectName()=="Box_A"){ // Box_A type QLabel
this->move(mapToParent(event->pos()-_offset)); // Box_A moves as expected
_tmp=this->parentWidget()->findChild<QWidget *>("Box_B"); // Box_B type QLabel
if(_tmp){
_tmp->move(mapToParent( QPoint(0, event->pos().y()-_offset.y()) ) );// Box_B jumps around
_tmp=NULL;
}
}
}
To copy to clipboard, switch view to plain text mode
I can get Box_A to move exactly where I wanted it to be, but Box_B which is supposed to be sliding up and down the Y axis is jumping around in the parent widget. What's the right method for the child coordinate transformation?
------------------------------------------------------------------------
I solved it by passing this->pos().y() position directly to Box_B.
{
if(_mouseLeftPressed && this->objectName()=="Box_A"){ // Box_A type QLabel
this->move(mapToParent(event->pos()-_offset)); // Box_A moves as expected
_tmp=this->parentWidget()->findChild<QWidget *>("Box_B"); // Box_B type QLabel
if(_tmp){
_tmp
->move
(QPoint(0, this
->pos
().
y() ));
// Box_B slides up and down Y axis _tmp=NULL;
}
}
}
void BoxExample::mouseMoveEvent(QMouseEvent *event)
{
if(_mouseLeftPressed && this->objectName()=="Box_A"){ // Box_A type QLabel
this->move(mapToParent(event->pos()-_offset)); // Box_A moves as expected
_tmp=this->parentWidget()->findChild<QWidget *>("Box_B"); // Box_B type QLabel
if(_tmp){
_tmp->move(QPoint(0, this->pos().y() ));// Box_B slides up and down Y axis
_tmp=NULL;
}
}
}
To copy to clipboard, switch view to plain text mode
Still do not understand the whole mechanism behind child parent transform properly. It seems that all transformations are done relatively, right?
Thanks.
Cheers,
Faizol
Bookmarks