ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
190
190
EMPFEHLEN
-
Hallo,
versuche gerade mit Qt 4.7.3 MingW32 C++ einen Eigenen Designer zu basteln.
Alles läuft schonmal gut, Haupt Widget (Designer) und PushButton lassen sich darstellen und verschieben - also der Pushbutton.
Was ich nicht hinbekomme, ist folgendes:
in der paint event methode zeichne ich ein rechteck und 8 kleine blöcke wie man das vom designer anderer Sprachen auch kennt.
Das MouseMoveEvent arbeitet auch soweit recht gut, also wenn man oben links auf ein block stößt, verändert sich der mauscursor.
soweit so gut.
wenn ich nun den designer anklicke und dessen größe ändern möchte geht das nur mit unten recht oder mitte unten gut.
mitte oben gibt es schon schwierigkeiten.
gibt es da was zu beachten?
hier der code:
danke für hilfe
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
void DragWidget::mouseReleaseEvent(QMouseEvent *event) { DesignerPushButton *child = qobject_cast<DesignerPushButton*>(childAt(event->pos())); if (!child) { paintMainForm = 1; update(); if (event->button() == Qt::LeftButton) { int px = event->x(); int py = event->y(); if (dclick == MC_CENTER_DOWN /* this works */ || dclick == MC_CENTER_UP /* this not work*/ ) { resize(size().width(),py); } else if (dclick == MC_RIGHT_DOWN) { resize(px,py); // this line works } else if (dclick == MC_CENTER_RIGHT) { resize(px,size().height()); } move(2,2); } } } void DragWidget::mouseMoveEvent(QMouseEvent *event) { int xp = event->x(); int yp = event->y(); int rs = 5; int cp = 0; char buffer[100]; sprintf(buffer,"%d - %d",xp,yp); label->setText(QString(buffer)); label->resize(120,20); label->update(); if ((xp >= cp && xp <= rs) && (yp >= cp && yp <= rs)) { dclick = MC_LEFT_UP; setCursor(QCursor(Qt::SizeFDiagCursor)); } else if ((xp >= size().width ()-rs && xp <= size().width ()) && (yp >= size().height()-rs && yp <= size().height())) { setCursor(QCursor(Qt::SizeFDiagCursor)); dclick = MC_RIGHT_DOWN; } else if ((xp >= cp && xp <= rs) && (yp >= size().height()-rs && yp <= size().height()-rs)) { dclick = MC_LEFT_DOWN; setCursor(QCursor(Qt::SizeBDiagCursor)); } else if (((xp >= size().width ()-rs && xp <= size().width()) && (yp >= cp && yp <= rs))) { dclick = MC_UP_RIGHT; setCursor(QCursor(Qt::SizeBDiagCursor)); } else if ((xp >= (size().width() / 2)-rs && xp <= (size().width() / 2)) && (yp >= cp && yp <= rs)) { dclick = MC_CENTER_UP; setCursor(QCursor(Qt::SizeVerCursor)); } else if ((xp >= (size().width() / 2)-rs && xp <= (size().width() / 2)) && (yp >= size().height()-rs && yp <= size().height())) { dclick = MC_CENTER_DOWN; setCursor(QCursor(Qt::SizeVerCursor)); } else { //setCursor(QCursor(Qt::ArrowCursor)); //dclick = 0; } }
Ähnliche Themen
-
Eigener mini bot
Von Bitdemon im Forum InternetkommunikationAntworten: 11Letzter Beitrag: 18.03.06, 14:23 -
Eigener Datentyp ?
Von Railer im Forum .NET ArchivAntworten: 1Letzter Beitrag: 20.10.04, 21:56 -
Script mit eigener CSS
Von tuccain im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 31.05.04, 19:22 -
eigener uBB Tag
Von js-mueller im Forum PHPAntworten: 0Letzter Beitrag: 24.08.03, 17:10 -
eigener smtp / pop
Von Subwoover im Forum PHPAntworten: 2Letzter Beitrag: 24.07.03, 13:15





Zitieren
Login






