Problem mit Darstellung von Text in QTable

Alles rund um die Programmierung mit Qt
Antworten
Notwist
Beiträge: 85
Registriert: 2. März 2005 14:24

Problem mit Darstellung von Text in QTable

Beitrag von Notwist »

Hallo Leute,

habe mal wieder ein Problem:

Ich habe zwecks objektorientierten Gedanken meine schon funktionierende Tabellen-Funktion, die Einträge aus einer ListView ausliest und in einer Tabelle darstellt in eine neue Klasse implementiert und übergebe nun von der Hauptklasse die entsprechenden Zeigerelemente auf meine ListView und meine Table an diese Klasse, um sie dort auszulesen und zu verändern. Nun geht das alles bis zu dem Punkt, an dem er den Text in der Tabelle darstellen soll (wie gesagt, das ging in der Hauptklasse schon). Er macht mit der Tabelle alles richtig, nur den text stellt er nicht da. Wenn ich nach dem Einfügen des Textes in die Tablle über setText die Tabellezelle mit text() in einen String auslese, steht der da auch drin. Habe auch mal show() und update() ausprobiert, nichts ging. Wenn ich eine total neue Tabelle kreiere, geht es komischerweise. Ist das wieder ein Designer-Problem, weil das Fenster, das ich verändern will, im Designer gemacht wurde? Hier nochmal der Code und die Übergabe:

void Table::getTable (QTable *table) //Übergabe der Table
{
contentTable = new QTable(*table);
}

void Table::getListView(QListView *listview) //Übergabe der ListView
{
registerListView = new QListView( *listview );
}

void Table::fillTable()
{
int c=0, i=0, j=0, n=0, x=0;
/* QTable* contentTable = new QTable(); // Kommentar, mit ner total // // neuen Tabelle geht es


contentTable->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)4, 0, 0, contentTable->sizePolicy().hasHeightForWidth() ) );
contentTable->setNumRows( 5 );
contentTable->setNumCols( 5 );
contentTable->setReadOnly( TRUE );*/

QString t;

n = registerListView->currentItem()->childCount();
c = registerListView->columns();
sizeTableRows(n);
if (registerListView->currentItem()->childCount()!=0)
{
eraseTable();

contentTable->setText(0, COL_ADR, registerListView->currentItem()->text(COL_ADR));


QListViewItem* item = registerListView->currentItem()->firstChild();


for (i=1; i<=c-1; i++){
contentTable->setText(1, i, item->text(i));
QString t=contentTable->text(0,i);}

while (x<n-1)
{
j++;
x++;
item = item->nextSibling();

for (i=1; i<=c-1; i++){
contentTable->setText(j, i, item->text(i));
t=contentTable->text(j,i);}
}
}

contentTable->updateCell(0,0);
resizeTable();
contentTable->show();
}
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Siehe "Verstaendnisfrage zur Objektuebergabe" http://www.qtforum.de/forum/viewtopic.php?t=331 ..ist von das Sache her das gleiche Problem.

Goos
Antworten