Archiv verlassen und diese Seite im Standarddesign anzeigen : Qt: QListView mit dem Inhalt von QStringList
Hi Leute!
Ich habe ein Problem mit QListView. Ich habe eine QStringList variable die aus mehreren zeilen besteht wie kann ich den Inhalt von QStringList ins QListView transportieren.
Bei vielen Pogrammen (exemple von qt) habe ich gesehen, dass
for (i .......)
{
.....
}
methode benutzt wird. Leider komme ich damit nicht klar. :(
Vielen dank im Voraus!
Chapaev
peschmae
28-01-2005, 06:33
Inwiefern kommst du damit nicht klar? Kopier doch einfach das Beispiel aus der Doku:
QStringList fonts;
for ( QStringList::Iterator it = fonts.begin(); it != fonts.end(); ++it ) {
cout << *it << ":";
}
statt dem Cout machst du halt was in der Richtung von
new QListviewItem(listViewPointer, *it);
MfG Peschmä
Entschuldegung das ich so spät antrworte!
Danke Hat wunderbar geklappt! ;)
Hi leute!
ich habe heute festgestellt das meine QListView inhalt automatisch sotriert :eek:
wie kann ich sortierung ausschalten? (designet with QT Designer)
Hier ist meine code (diese code ist für den inhalt der QListView verantwortlich)
void CharTrans::updateCharList( const QString &myString )
{
QStringList allList = QStringList::split("\n", myString);
charView->clear();
for ( QStringList::Iterator it = allList.begin(); it != allList.end(); ++it )
{
QString oldChar = *it;
oldChar.replace(QRegExp("=(.*)$"), "");
QString newChar = *it;
newChar.replace(QRegExp("^(.*)="), "");
new QListViewItem( MyQlistView, oldChar, newChar );
}
}
Ich selbst konnte hier keine Fehler entecken.
Deshalb nehme ich an, dass es an QListWiev liegt.
MfG
chapaev
peschmae
02-02-2005, 12:08
Guck mal im Qt Assistant vorbei :)
void QListView::setSorting ( int column, bool ascending = TRUE ) [virtual]
Sets the list view to be sorted by column column in ascending order if ascending is TRUE or descending order if it is FALSE.
If column is -1, sorting is disabled and the user cannot sort columns by clicking on the column headers. If column is larger than the number of columns the user must click on a column header to sort the list view.
Also machst du ein MyQlistView->setSorting(-1); um das automatische sortieren abzuschalten.
Und ich würde mir angewöhnen Klassennamen mit Grossbuchstaben und Variablennamen mit Kleinbuchstaben zu beginnen. Auch wenn das "nur" eine Konvention ist die man auch nicht beachten kann. Schafft aber imo Klarheit.
MyQlistview ist besonders "böse" weil die Originalklasse QListView heisst und nicht QlistView. Am besten also imo myQListView als Namen verwenden oder auch nur listView.
MfG Peschmä
Ich habe es so gemacht wie du gesagt hast
MyQlistView->setSorting(-1);
so siht es dann aus:
void CharTrans::updateCharList( const QString &myString )
{
QStringList allList = QStringList::split("\n", myString);
charView->clear();
MyQlistView->setSorting(-1);
for ( QStringList::Iterator it = allList.begin(); it != allList.end(); ++it )
{
QString oldChar = *it;
oldChar.replace(QRegExp("=(.*)$"), "");
QString newChar = *it;
newChar.replace(QRegExp("^(.*)="), "");
new QListViewItem( MyQlistView, oldChar, newChar );
}
}
Liste wird nicht mehr sortiert, :) aber angezeigt wird die von unten nach oben also umgekehrt :confused:
Warum eigendlich?
MfG
chapaev
Ich habe verstanden warum das so ist! ;)
diese code
void CharTrans::updateCharList( const QString &myString )
{
QStringList allList = QStringList::split("\n", myString);
MyQlistView->clear();
MyQlistView->setSorting(-1);
for ( QStringList::Iterator it = allList.begin(); it != allList.end(); ++it )
{
QString oldChar = *it;
oldChar.replace(QRegExp("=(.*)$"), "");
QString newChar = *it;
newChar.replace(QRegExp("^(.*)="), "");
new QListViewItem( MyQlistView, oldChar, newChar );
}
}
fügt jedes mal eine zeile am Anfang der liste :rolleyes:
also habe ich das Auslesen von QStringList rückwerts gemacht
void CharTrans::updateCharList( const QString &myString )
{
QStringList allList = QStringList::split("\n", myString);
MyQlistView->clear();
MyQlistView->setSorting(-1);
for ( QStringList::Iterator it = allList.end(); it != allList.begin(); --it )
{
QString oldChar = *it;
oldChar.replace(QRegExp("=(.*)$"), "");
QString newChar = *it;
newChar.replace(QRegExp("^(.*)="), "");
new QListViewItem( MyQlistView, oldChar, newChar );
}
}
klappt prima!
MfG
chapaev
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.