QDialog mit QPoint in die richtige position bringen

Alles rund um die Programmierung mit Qt
Antworten
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

QDialog mit QPoint in die richtige position bringen

Beitrag 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/
Dateianhänge
QPoint.png
QPoint.png (10.71 KiB) 1586 mal betrachtet
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Guck dir mal QMenu::exec ( const QPoint & p, QAction * action = 0 ) und QWidget::mapToGlobal ( const QPoint & pos ) an.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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......
Antworten