[abgescheift] QListView mehrzeilige Ausgabe

Alles rund um die Programmierung mit Qt
Antworten
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

[abgescheift] QListView mehrzeilige Ausgabe

Beitrag von Esleborn »

hi,
ich muss dafür sorgen, dass ein QListView mehrzeilige Ausgaben machen kann... kann mir da einer helfen?

Danke

Esleborn
Zuletzt geändert von Esleborn am 25. Mai 2006 16:09, insgesamt 3-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Qmap macht dass selbe...

typedef QMap<int, QStringList> resultMap;

einfach zum setzen und zum lesen....

lade doch ...
svn co http://ciz.ch/svnciz/forms_shop/ test
cd test && qmake && make
gerate heute getestet mit window , mac , linux...
hat sqlite3 aber brauchst keine qtsql-plug oder datenbank in... hat alles dabei um eine statische libs zu bauen
die applikation aus dem binary-result dir (ordner) starten da dort die xml config ist...
um eine muster sql zu laden...

Code: Alles auswählen

resultMap Sqlitedb::Query_Qmap_Report(const QString & fullquery)
{
    resultMap res;
    if (!isOpen()) {
    return res;  /* not connect! */
    }
   SqlLog(QString( "%1 from Query_Qmap_Report 1" ).arg( fullquery ));  /* internal log */
   sqlite3_stmt *vm;
   const char *tail;
   int ncol;
   /*int rownum = 0;*/
   int recnum = 0;
   QString r;
   int err=0;
   QStringList linelister;
   err=sqlite3_prepare(_db,fullquery.toUtf8().constData(),-1,&vm, &tail);
    if (err == SQLITE_OK) {
            while ( sqlite3_step(vm) == SQLITE_ROW ){
               ncol = sqlite3_data_count(vm);
               recnum++;
               linelister.clear();
                    /*file_put_contents_append_debug("resloop.dat","--------------------");*/
                    for (int e=0; e<ncol; e++){
                    r = QString::fromUtf8((const char *) sqlite3_column_text(vm, e));
                    linelister.append(r);
                    /*file_put_contents_append_debug("resloop.dat",QString("%1 dat = %2" ).arg( QString::number(e) , r ));*/
                    }
             res.insert(recnum,linelister);
            }
       sqlite3_finalize(vm);
    } else {
     lastErrorMessage = QString::fromUtf8(sqlite3_errmsg(_db));
    }
    
return res;  
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Sorry ich dachte an einen qlist so wie array...

aber eine QListView als widget ist dort auch drinnen.....
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

ähhh patrik08 ich kapier deinen Posts nicht wirklich...
patrik08 hat geschrieben:Sorry ich dachte an einen qlist so wie array...
kann passieren.
patrik08 hat geschrieben:aber eine QListView als widget ist dort auch drinnen.....
Wo drin?

Und was hat dein Code mit dem Problem zu tun?
Wie kommst du von einem QListView (auch wenn du es als QList interpretiert hast) auf irgendwas mit SQL?


....Naja egal.
Zurück zum QListView... einer ne Idee?

PS: Was sollte eine Multiline bei einem QList sein? Naja auch egal...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Esleborn hat geschrieben:äh
PS: Was sollte eine Multiline bei einem QList sein? Naja auch egal...
Qlist....
ist sowas...

Inserts value at the end of the list.
Example:
QList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]


was im grunde genommen das selbe ist wie ein QStringList
und dass selbe resultat geht mit qmap und sicher auch qvariant...
In PHP uebersetz sind alle diese begriffe ein array.... aber ich kann begreifen dass qt so wiele benennung hat .. da auch vielen typen von daten kommen...

Dein Qlistwiev ist wie der Qtreeview aber immer nur eine line....
kennst du nicht subversion?? von diene letzte frage?
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

ähh patrik08 könntest du bitte wieder zum Threadthema zurückkehren?
Und zu dem .... interessanten das du gepostet hast:
patrik08 hat geschrieben:
Esleborn hat geschrieben:äh
PS: Was sollte eine Multiline bei einem QList sein? Naja auch egal...
Qlist....
ist sowas...

Inserts value at the end of the list.
Example:
QList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]
[...]
Danke ich weiß was ein QList ist, aber multiline hat da nichts mit zu tun. Mehrzeilige QList ist Schwachsinn... was soll eine Zeile einer Liste sein? Ein Element? Listen mit mehreren Elementen ist schon fast eine Tautologie...
patrik08 hat geschrieben:[...]
was im grunde genommen das selbe ist wie ein QStringList
und dass selbe resultat geht mit qmap und sicher auch qvariant...
In PHP uebersetz sind alle diese begriffe ein array.... aber ich kann begreifen dass qt so wiele benennung hat .. da auch vielen typen von daten kommen...
[...]
Ähh um ganz genau zu sein erbt QStringList von QList<QString>... und ist nciht "das gleiche". QMap ist wiederrum was ganz anderes, da es Keys und zugehörige Values speichert. QVariant wiederrum hat mit beidem NIX zu tun, außer das man ein QVariant aus den anderen erstellen kann und QLists von QVariants machen kann... Die PHP Erklärung wiederrum hat gegenüber von C++ Programmiereren keinen Sinn (da PHP schächer als CPP ist, aber die Diskusion soll hier nciht starten!), außer man fragt nach einem Vergleich zu PHP...
patrik08 hat geschrieben:[...]Dein Qlistwiev ist wie der Qtreeview aber immer nur eine line....
kennst du nicht subversion?? von diene letzte frage?
Quatsch. QListView und QTreeView sind beides Views (Model/View Struktur) und das war ihre gemeinsamkeit auch schon. QTreeView baut eine Baumstruktur auf, während QListView nur eine List anzeigt (sry für starke Vereinfachung) oder meintest du das mit "nur einer line" (was auch immer bei dir ne line (zu Deutsch "Linie") ist)
Äähh meine letzte Frage war Was sollte eine Multiline bei einem QList sein? oder ohne PS Wie kommst du von einem QListView (auch wenn du es als QList interpretiert hast) auf irgendwas mit SQL? ... in keine davon kokmmt Subversion auch nur vor. Und ja ich kenne subversion relativ gut... (wie auch immer du jetzt darauf kommst)

Bitte zurück zum Thema (siehe erster Post)
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

gut dann habe ich einen designer der nicht von qt4 ist ....

ob tree oder list er nimmt immer
QListWidgetItem ..... genau wie den tree...

beim start der benennung der classe nimmt er ein anderen Model/View

Ich glaube kaum dass mein designer luegt....

>>>>> in keine davon kokmmt Subversion auch nur vor. <<<<<

zitat vom ersten post.....
lade doch ...
svn co http://ciz.ch/svnciz/forms_shop/ test
cd test && qmake && make

dort sind beide enthalten..... als source!


Code: Alles auswählen

listWidget->clear();

    QListWidgetItem *__item = new QListWidgetItem(listWidget);
    __item->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item1 = new QListWidgetItem(listWidget);
    __item1->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item2 = new QListWidgetItem(listWidget);
    __item2->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item3 = new QListWidgetItem(listWidget);
    __item3->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item4 = new QListWidgetItem(listWidget);
    __item4->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

patrik08 hat geschrieben:gut dann habe ich einen designer der nicht von qt4 ist ....

ob tree oder list er nimmt immer
QListWidgetItem ..... genau wie den tree...
Bitte wenn du keine Ahnung hast wovon du redest, sei bitte ruhig.
QTreeWidget verwendet QTreeWidgetItem
QListWidget verwendet QListWidgetItem

Ich rede aber von QListView, bei dem es keine QListWidgetItems gibt. (und sowieso keine QTreeWidgetItems)

Was das ganze mit dem Designer zu tun hat ist die nächste Frage...
patrik08 hat geschrieben:beim start der benennung der classe nimmt er ein anderen Model/View

Ich glaube kaum dass mein designer luegt....
Was auch immer die sagst...
patrik08 hat geschrieben:>>>>> in keine davon kokmmt Subversion auch nur vor. <<<<<

zitat vom ersten post.....
lade doch ...
svn co http://ciz.ch/svnciz/forms_shop/ test
cd test && qmake && make

dort sind beide enthalten..... als source!
Was ist enthalten... egal ich will keine Beispiele von dir sehen!


patrik08 hat geschrieben:

Code: Alles auswählen

listWidget->clear();

    QListWidgetItem *__item = new QListWidgetItem(listWidget);
    __item->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item1 = new QListWidgetItem(listWidget);
    __item1->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item2 = new QListWidgetItem(listWidget);
    __item2->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item3 = new QListWidgetItem(listWidget);
    __item3->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));

    QListWidgetItem *__item4 = new QListWidgetItem(listWidget);
    __item4->setText(QApplication::translate("Dialog", "New Item", 0, QApplication::UnicodeUTF8));
Wie gesagt QListWidgetItems haben hier ncihts verloren...

An den Mod: könntest du bitte alles bis auf meinen allerersten (threadstartenden) Beitrag aus diesem Thread "raus splitten"? So dass dieser Thread sich wieder mit dem ursprünglichen Thema auseinander setzen kann...?

Und patrik08 bitte ignoriere meine Fragen in Zukunft.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Esleborn hat geschrieben:Und patrik08 bitte ignoriere meine Fragen in Zukunft.
Ich wollte dich nur helfen ... mit deine frage wie macht man einen QListWidget ... gut mache ich den designer auf und mache eins ....
zu deiner unzufriedenheit macht nun der designer viele QTreeWidgetItem und nicht QListWidgetItem....
Warum fragst du denn wie man... zitat....
>>> QListView mehrzeilige Ausgaben machen kann... kann mir da einer helfen? <<<<<

Wass muss man dabei denken?
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

patrik08 hat geschrieben:
Esleborn hat geschrieben:Und patrik08 bitte ignoriere meine Fragen in Zukunft.
Ich wollte dich nur helfen ... mit deine frage wie macht man einen QListWidget ...
War nie meine Frage, wie wäre es wenn du genauer liest?
Meine Frage war wie man in QListViews mehrzeilige Items darstellen kann.
patrik08 hat geschrieben:gut mache ich den designer auf und mache eins ....
zu deiner unzufriedenheit macht nun der designer viele QTreeWidgetItem und nicht QListWidgetItem....
Fehlerhaft, meine Unzufriendenheit ging darauf zurück, dass deine Antwort nichts mit der Frage zu tun hatte und dass du auf einen entsprechenden Hinweis nicht reagiert hast.
patrik08 hat geschrieben:Warum fragst du denn wie man... zitat....
>>> QListView mehrzeilige Ausgaben machen kann... kann mir da einer helfen? <<<<<

Wass muss man dabei denken?
Ich fragte, weil ich wissen will wie man Items mit mehreen Zeilen in einem QListView darstellen kann. Deine Antworten gingen um:
QList, QStringList, QVariant, QMap, QListWidget, QTreeWidget, QTreeWidgetItem, SQL und nie um das Thema. (vergleiche Forenregeln)


Was du mit deiner letzten Frage meinst versteh ich nicht, aber ich will auch nicht, dass du es mir erklärst.
Ich bitte den Mod bisherige Antworten zu meiner Frage zu extrahieren.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Gut.... dann sag mir wo ist der unterschied zwischen...
ausser den name... von
http://doc.trolltech.com/4.1/qlistwidget.html
http://doc.trolltech.com/4.1/qlistview.html
und shaue auf die bilder....

Ich ... so wie du... bin auch Iher zum lernen...
PS:
Mit den slots habe ich die erfahrung gemacht bei qlistwidget und kann sagen die sind besser als qlistview
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

QListWidget erbt von QListView. Die Darstellung von beiden ist gleich. Nur bei QListView kommen die infos aus einem "echten" Model, bei QListWidget werden die Daten durch QListWidgetItems eingefüllt. Beode unterstützen die selbe Art von Signal und Slots nur bei QListView wird über Indexes gearbeitet und bei QListWidget über die QListWidgetItems...
Qt Doku hat geschrieben:The QListWidget class provides an item-based list widget.

QListWidget is a convenience class that provides a list view similar to the one supplied by QListView, but with a classic item-based interface for adding and removing items. QListWidget uses an internal model to manage each QListWidgetItem in the list.
An die Mods: Thema nicht mehr splitten, ich mach nen neues auf...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Im grunde genommen muss mann bei slot nicht wissen was unten in der liste oder tree fuer daten sind ...

sondern ich spreche direkt den QTreeWidget oder QListWidget an der obersten ..... aber ich setzte den slot auf dem untersten...

QTreeWidgetItem *sigle = new QTreeWidgetItem(paeort);
AddoLoad.append(daten); /* qstringlist daten inpacken*/
sigle->setText(0,daten);
connect(addo_tree, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(Safari()));


und mann kann alle daten ansprechen... gleich wie list...

Code: Alles auswählen

/* slot von list oder tree alle varianten den obersten /*
void Shop_Main::Safari()
{
    int xcol = addo_tree->currentColumn();
    QString findertree = addo_tree->currentItem()->text(xcol);
    int total = AddoLoad.size();
    if (total > 0) {
      QStringListIterator i(AddoLoad); 
      while (i.hasNext()) {
       QString itemtext = i.next().toLocal8Bit().constData();
          if (itemtext == findertree) {
            current_addo_item->setText(itemtext);
          }
      } 
    }
}

Oder hast du ein besondernen qmodel geschrieben?? um es noch einfacher zu machen?
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

ja ich hab ein eigenes QModel geschrieben. Sonst würde ich keine mehrzeiligen Daten auf ein QListView haben...

deinen Anfang verstech ihch wieder nicht.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

Esleborn hat geschrieben:ja ich hab ein eigenes QModel geschrieben. Sonst würde ich keine mehrzeiligen Daten auf ein QListView haben.
Wass meinst du mit mehrzeiligen? doch ein Tree? oder eine zeile mit x kolonnen? (ist auch ein tree kolonne 0,1,2,ecc eben flach wie table..) Ich wollte auch das Item(list/tree) ableiten um checked zu haben ....doch am ende habe ich eindeutig gesehen dass.... fast alles von der obere classe des item/list machbar ist.... slot emit ecc... sogar qmenus
Antworten