Seite 1 von 1

QDialog mit QPoint in die richtige position bringen

Verfasst: 16. Mai 2006 14:11
von patrik08
auf eine sql tabelle habe ich ein rechtsclick...
master_table->setContextMenuPolicy(Qt::CustomContextMenu);
connect(master_table, SIGNAL(customContextMenuRequested(QPoint)),this, SLOT(ReactorCell(QPoint)) );

die XY coordinaten kommen richtig...
doch QDialogobj->childAt(aPosition); (childAt(x,y) auch nicht)
QDialogobj->setWindowFlags(Qt::Popup);
geht nicht an die richtige position... Warum dass?

es sollte doch unter der maus kommen .. so sind die werte...
das

Code: Alles auswählen

void GuiMain::ReactorCell( const QPoint& aPosition )
{
    QString celltext = QString( "X = %1 Y = %2 \nrow = %3 cool = %4" ).arg( 
    QString::number(aPosition.x()) , 
    QString::number(aPosition.y()) , 
    QString::number(master_table->currentRow()), 
    QString::number(master_table->currentColumn())
    );
    Gui_Contex::self( this )->exec(); 
    Gui_Contex::self( this )->childAt(aPosition);
    Gui_Contex::self( this )->PaintArea(celltext);
}
alles im svn http://ciz.ch/svnciz/dialog_qt/qt4_a/table_update/

Verfasst: 16. Mai 2006 14:30
von macman
Guck dir mal QMenu::exec ( const QPoint & p, QAction * action = 0 ) und QWidget::mapToGlobal ( const QPoint & pos ) an.

Verfasst: 16. Mai 2006 15:56
von patrik08
ja gut... aber das ist kein qmenu...
sondern ein QDialog..... der wie ein qmenu aussieht mit einen QTextEdit
class Gui_Contex : public QDialog, public Ui::Gui_Contex

contex = new Gui_Contex(this);
contex->mapToParent(aPosition);
contex->PaintArea(celltext);
contex->show();

mapToParent(aPosition);

QPoint QWidget::mapToParent ( const QPoint & pos ) const
Translates the widget coordinate pos to a coordinate in the parent widget.
Same as mapToGlobal() if the widget has no parent.

Die position muss doch relativ zu parent sein ...

wen main x 100 , y 100 ist doch 100x100 die posizion 0,0 vom neuen QDialog oder ?
Ich glaube kaum dass man von QMainWindow die position finden muss um zu addieren beim neuen QDialog......