scrollToAnchor(QString) scrollt nicht

Alles rund um die Programmierung mit Qt
Antworten
Mensch
Beiträge: 50
Registriert: 16. März 2008 19:44

scrollToAnchor(QString) scrollt nicht

Beitrag von Mensch »

Hallo zusammen,

ich habe das Problem, dass in meinen Text Browser die Methode scrollToAnchor nicht zu der Ankerstelle im html Dokument springt zu der sie soll, sondern immer zum nullten Element der QStringList in der die Ankerstellen stehen. Hier mein Code:

Code: Alles auswählen

void FeatureTransformation::showTransfInfo(int index)
{
    m_ui->textBrowser->setSource(QUrl("FeatTransInfo.htm"));
    std::cout << transformAnchorList[index].toStdString() << std::endl;
    m_ui->textBrowser->scrollToAnchor(transformAnchorList[index]);
    m_ui->textBrowser->activateWindow();
    m_ui->textBrowser->setFocus();
}
Der SLOT in dem dieser Code steht wird korrekt bei einer Auswahl aus einer ComboBox gestartet. transformAnchorList[index] liefert auch auch den korrekten Eintrag in der Liste der Ankerstellen, was durch korrekten cout Output bestätigt wird. Leider wird aber dennoch IMMER zum ersten (nullten) Eintrag im TextBrowser gescrollt. Trage ich die Ankerstelle manuell per "xxx" im Code als Parameter von scrollToAnchor ein klappt alles wie es soll, aber eigentlich kommt auch der richtige Eintrag aus transformAnchorList[index], wie ich wie gesagt durch das cout weiß. transformAnchorList ist eine private Variable. Sieht jemand was ich falsch mache, bzw. reicht die Fehlerbeschreibung aus?

Viele Grüße und Dank im Voraus!
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Versteh ich das richtig, du führst eine separate Liste mit den Strings aus der ComboBox? 2x die gleichen Daten halten kann schon mal schief gehen, :P
Greif doch einfach auf die ComboBox zu (QString itemText(int index)), oder nimm dir gleich das Signal "currentIndexChanged(const QString& text)".

Falls das alles nix bringt, ist denke ich mehr Code nötig.

Grüße
Franz
Mensch
Beiträge: 50
Registriert: 16. März 2008 19:44

Beitrag von Mensch »

Ich weiß zwar immernoch nicht woran es lag, aber dein Vorschlag das Signal currentIndexChanged(const QString& text) funktioniert einwandfrei. Vielen Dank für den Tipp!
Antworten