QPushButton, setFocus() und die gestrichelte Linie

Alles rund um die Programmierung mit Qt
Antworten
Fabeltier
Beiträge: 33
Registriert: 3. Juni 2007 04:46
Wohnort: München

QPushButton, setFocus() und die gestrichelte Linie

Beitrag von Fabeltier »

Hallo,
Ich habe eine wohl einfache Frage zum Focus bei QPushButtons.

Ich habe versucht in einem Proggy den Focus auf einen Button zu setzen mit

Code: Alles auswählen

button->setFocus()
Das funktioniert auch, haut man nun auf Space wird die Aktion hinter diesem Button ausgefuehrt. Leider wird der Button aber vorher nicht "markiert" angezeigt.

Frage:
Wie kann ich also den Focus UND diese gestrichelte Linie um den Text des PushButtons setzen, die erscheint, wenn man mit TAB durch die Buttons durchgeht?
TIA :wink:
RD1978
Beiträge: 84
Registriert: 5. Juni 2007 08:00
Wohnort: Stralsund (DDR)

Beitrag von RD1978 »

Hallo,

versuch´ s mal mit:
QWidget::setTabOrder( QWidget *first, QWidget *second )

Mfg RD1978
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

wenn nichts mehr hilft probier das hier:

Code: Alles auswählen

QCursor::setPos(mapToGlobal(QPoint(pb1->x()+pb1->width()/2, pb1->y()+pb1->height()/2)));
Es ist zwar eine aprubte lösung, aber du hast focus und die "gestrichelte Linie"
Fabeltier
Beiträge: 33
Registriert: 3. Juni 2007 04:46
Wohnort: München

Beitrag von Fabeltier »

Hallo,
@RD1978
Die Tabreihenfolge bringt mir leider auch kein optisch sichbares Zeichen, also entsprechende gestrichelte Linie.

@Kernel_Panic
So wie ich es verstehe muss ich fuer pb1 den Namen des Buttons einsetzen - naja, irgendwie witziger Effekt, aber die dumme Strichellinie hab ich immer noch nich. Dafuer springt mein Curser nun, hehe (werd das gleich mal etwas ausbauen, Danke!).

So, noch weitere Vorschlaege?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

hm, ich fands auch lustig, aber bei mir wird das dann auch hervorgehoben dargestellt. Vllt solltest du das button mal "anklicken" und ein flad setzen, dass der klick nur ein dummy war. Du könntest animateClick(int ms) verwenden, wenn du dir so sachen spass machen.
Zandru
Beiträge: 84
Registriert: 29. Mai 2007 15:35

Beitrag von Zandru »

nur ne Idee: bei SetFocus() den Parameter FocusReason mal die verschiedenen Werte durchprobieren? (insbesondere Tastatur-Event als Reason denke ich könnte vielversprechend sein ;)
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

nützt nix
Antworten