Bekomme nicht die accessibleDescription vom QToolButton?!

Alles rund um die Programmierung mit Qt
Antworten
gandalffo
Beiträge: 11
Registriert: 22. Februar 2012 16:44

Bekomme nicht die accessibleDescription vom QToolButton?!

Beitrag von gandalffo » 23. April 2012 15:12

Hallo Leute,

Ich habe mehrere QToolButtons die alle auf
einen Slots connected sind.
Ich möchte dann die accessibleDescription auswerten.
Den QToolButton bekomme ich über qobject_cast<QToolButton*>(sender());
Jedoch gibt es keine Funtkion für accessibleDescription, auch nicht wenn ich es
als QWidget caste.
Kann mir da jemand weiterhelfen???

solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von solarix » 23. April 2012 17:04

Ich glaube, was du tun solltest ist nicht irgendwelche Metadaten via Name/Description zu extrahieren, sondern gleich via SignalMapper (http://qt-project.org/doc/qt-4.8/qsignalmapper.html) zu managen (Lösung für das Problem: "Viele-Sender-auf-einen-Slot-mit-Senderunterscheidung").

Zu "Jedoch gibt es keine Funtkion": bei Source + Compilerfehler könnte man schon helfen..

gandalffo
Beiträge: 11
Registriert: 22. Februar 2012 16:44

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von gandalffo » 24. April 2012 08:15

Danke für die Antwort,

ich werder es nun mit dem Signalmapper probieren, allerdings wäre die Accessible Eigenschaft von Vorteil gewesen denn diese hätte
mit dem Linguist übersetzt werden können.

Compilerfehler bekomme ich keine, auch wenn ich ein andere Objekte direkt im Code erzeuge kann ich nicht auf diese
Eigenschaft zugreifen.

brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von brax » 24. April 2012 10:57

Also erstmal hat solarix recht, wenn Du die accessibleDescription benutzen möchtest, um den Sender herauszufinden.

Ansonsten versteh ich aber Dein Problem nicht ganz. Der Code:

Code: Alles auswählen

QToolButton tb;
tb.setAccessibleDescription("foo");
qDebug() << tb.accessibleDescription();
gibt korrekt den String "foo" aus. Ist es das was Du meinst?

gandalffo
Beiträge: 11
Registriert: 22. Februar 2012 16:44

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von gandalffo » 24. April 2012 14:29

Genau so etwas meine ich.

Jedoch ist es bei mir nicht vorhanden, vielleicht ist es
im QtSDK embedded nicht drin.

brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von brax » 24. April 2012 16:24

Eigentlich sind Methoden, die im Embedded Qt nicht drin sind entsprechend gekennzeichnet. Und wenn Du die Methode setAccessibleDescription hast, sollte der getter dafür auch da sein.

Ich verstehe aber immer noch nicht so ganz. Du hast geschrieben, dass Du keinen Compilerfehler bekommst, wenn Du die Methode benutzt. Was bekommst Du denn dann für einen Fehler?

gandalffo
Beiträge: 11
Registriert: 22. Februar 2012 16:44

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von gandalffo » 25. April 2012 09:21

Ich programmiere im Eclipse, da wird 1. die methode nicht bei der autovervollständigung (oder wie das heißt) gezeigt und 2. wenn ich
sie direkt eingebe kommt folgender Fehler: class QToolButton hat kein Element names "setAccessibleDescription"

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Bekomme nicht die accessibleDescription vom QToolButton?

Beitrag von franzf » 25. April 2012 10:31

Für die Zukinft: Immer gleich GENAU sagen, was falsch läuft, dann muss man nicht ewig hin und her diskutieren. Das bedeutet vor allem Compiler-Meldungen posten!

Code: Alles auswählen

#ifndef QT_NO_ACCESSIBILITY
    Q_PROPERTY(QString accessibleName READ accessibleName WRITE setAccessibleName)
    Q_PROPERTY(QString accessibleDescription READ accessibleDescription WRITE setAccessibleDescription)
#endif
Das steht im Header von QWidget. Wenn es also im Embedded keine Accessibility-Funktionen gibt - Pech gehabt. Ansonsten musst du nur Qt mit der entsprechenden Option neu kompilieren.

Antworten