hinzufügen von benutzerdefinierten widget zu QTableWidget Zelle
Habe ich custom-widget gemacht mit dem qt designer und ich möchte hinzufügen, dass es zu QTableWidget Zelle.
Aber es funktioniert nicht.
Hier ist der code :
int nRows =10;
for(int row = 0; row < nRows;row++;)
{
QTableWidgetItem* item = new QTableWidgetItem();
CustomWdg* wdg=new CustomWdg( );
mTableWdg->insertRow( row );
mTableWdg->setItem(row, 0, item);
mTableWdg->setCellWidget( row, 0, wdg );
}
Den angegebenen code korrekt aussieht, würde ich vermuten, dass etwas falsch ist mit dem custom-widget selbst.
Die custom-widget ist das standard-widget-made in qt-designer, hat es zwei buttons und zwei labels. Ich erbt von QWidget. Ich weiß nicht, was falsch sein könnte.
Wenn Sie das widget in einem anderen Kontext, ist es sichtbar und nutzbar ist?
Was bedeutet "es funktioniert nicht" bedeutet ? Es wird nicht kompiliert ? Es stürzt ab ?
Die custom-widget ist das standard-widget-made in qt-designer, hat es zwei buttons und zwei labels. Ich erbt von QWidget. Ich weiß nicht, was falsch sein könnte.
Wenn Sie das widget in einem anderen Kontext, ist es sichtbar und nutzbar ist?
Was bedeutet "es funktioniert nicht" bedeutet ? Es wird nicht kompiliert ? Es stürzt ab ?
InformationsquelleAutor user152508 | 2012-04-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, fügen Sie benutzerdefinierte widget in Tabelle Zelle, die Sie verwenden können, QItemDelegate.
Erstellen eigener Delegate-Klassen und Erben von QItemDelegate.
Einstellen und dann Delegierter für die Tabelle mit diesen Methoden auf Ihre eigenen.
Habe ich versucht diesen code:
und das Ergebnis ist:
InformationsquelleAutor LyndaOlexandr
Ihr code korrekt ist, so ist die einzige Sache, die mir in den Sinn kommt ist, dass Sie nicht
setColumnCount(1)
vorfor
Schleife. Wenn das nicht der Fall ist, könnten Sie versuchen, die Zeile und Spalte, die Zählung vor, dassfor
loop statt das einfügen von Zeilen in der Schleife:Wenn Sie wirklich brauchen
item
("Zeile" und "Zeile drei"), sollten Sie es so einstellen:QTableWidgetItem* item = new QTableWidgetItem("");
, sonst brauchen Sie nicht, diese Zeilen, IhreCustomWdg
ist richtig eingestellt mitsetCellWidget
InformationsquelleAutor Aleksandar