2016-05-19 6 views
-3

ich Unterklasse eine QTableWidget Klasse und wollte in QTabWidget, so etwas wie dies anzuzeigen:Was sind die möglichen Gründe, warum meine Unterklasse QTableWiget nicht angezeigt wird?

class Mainwindow: 
_tabWidget->addTab(doc, QFileInfo(doc->fileName()).fileName()); 
class doc: 
_tableWidget = new QTableWidget(row, column); 

ich debuggen können, dass „doc“ nicht NULL ist. _tableWidget haben Werte in Zeilen und Zellen. Aber alles, was ich in meiner Anwendung sehen kann, ist die Anzeige der Registerkarte mit der richtigen Bezeichnung, Es sind keine Zeilen und Spalten gezeichnet. Ich habe das _tabWidget programmgesteuert erstellt. Aus welchen Gründen wurde der Inhalt von "doc" nicht angezeigt? Vielen Dank im Voraus.

Ich versuchte, das QTableWidget Objekt der benutzerdefinierten Klasse aus der Klasse Mainwindow mit einer Getter-Funktion (doc-> Tabelle()) zuzugreifen:

sind
_tabWidget->addTab(doc->table(), QFileInfo(doc->fileName()).fileName()); 

Die Zeilen und Spalten angezeigt jetzt. Ist es wirklich die Art, es zu tun?

+0

'doc' kann unsichtbar sein –

+0

@Dmitry Vielen Dank für Ihr Interesse. – steiryx

+1

Können Sie mehr Code anzeigen? Du bist überhaupt nicht informativ. – someoneinthebox

Antwort

0

Was Sie in dem kleinen Stück Code tun, ist das Erstellen eines QTabWidget und Hinzufügen einer Registerkarte mit einem QWidget (Basisklasse von Doc) -Objekt. In Ihrer Bearbeitung (das funktioniert) fügen Sie nicht mehr das QWidget (doc) hinzu, sondern fügen direkt ein QTableWidget-Objekt (doc-> table()) hinzu, das funktioniert.

Ich kann also nur schlussfolgern, dass Sie kein Layout für QWidget setzen und somit das QTableWidget nicht in das Layout einfügen.

+0

Danke für Ihren Hinweis. Aber wie lege ich die Basisklasse von DOC in Layout? Was ich getan habe, war, dass ich das tabWidget in das Layout einfüge, aber keinen Effekt habe. – steiryx

+0

Vielen Dank, ich habe es. Es gibt noch viel zu lernen von Qt. – steiryx

Verwandte Themen