QTableWidget Kästchen oben links?
-
Hallo,
ich habe mir mit Qt eine Tabelle zusammengebastelt, bei der auch bisher alles so weit funktioniert. Nur habe ich in der Doku noch nichts gefunden, wie man das Kästchen ganz oben links benennt (x). Denn bei der Position 0,0 ist das y.x|1|2|3|4 1|y|0|0|0 2|0|0|0|0 3|0|0|0|0 4|0|0|0|0 5|0|0|0|0
Danke für eure Hilfe
-
Hat da keiner eine Idee?
Und ich hab noch eine Frage.
Kann ich bei der Zeilenbechreibung QT bei 0 anfangen lassen zu zählen, oder muss ich das alles selber über setVerticalHeaderLabels() machen?
-
push
-
wie wäre es mit Code ... deine Beschreibung ist mehr als dürftig: Du hast also eine QtTabelle zusammengebastelt - ok, wie denn? QTableWidget? QTableView+QxxxxModel? QTableView+QAbstractItemModelEigenAbleitung? Tabelle in QGraphicsview mit QGraphicsTextItems und -LineItems? QGridlayout mit abwechselnd QLabels und QFrames? QWidget und paintEvent überladen , ... ? Ich würde dich so spontan mal zum Lesen von http://doc.qt.nokia.com/latest/model-view-programming.html auffordern. Und falls du Code postest, bitte Minimalbeispiel, schön formatiert in [ cpp] [/cpp] Tags. Die einrückung bekommst du im QtCreator mit String+I (autom. Einrückung), Zeilen und konsistente Klammerungssystematik musst du dir selbst angewöhnen.
Artikelpushen macht mich immer ganz fuxich
-
Also meine Tabelle mache ich mit
QTableWidget
.
Ein Item füge ich z.B. mitui->tableWidget->setItem(0, 0, new QTableWidgetItem(QString::number(0)));
ein. Dies ist dann an der Stelle von y in der Grafik oben.
Die HeaderLabels füge ich so ein:QStringList HeaderLabels; HeaderLabels << "Hallo" << "Welt"; ui->tableWidget->setHorizontalHeaderLabels(HeaderLabels);
Vorher passe ich die größe der Tabelle mit
setRowCount()
undsetColumnCount()
fest.
Vielmehr COde gibts da nicht, den Rest habe ich mir einfach mit dem Designer zusammengeklickt.
-
Dann sitzt du einer Fehlinfo auf, das TableWidget sieht nicht so aus
x|1|2|3|4 1|y|0|0|0 2|0|0|0|0 3|0|0|0|0 4|0|0|0|0 5|0|0|0|0
sondern so
| horizHeader --|------------- v | ModelItems e | ModelItems r | ModelItems t | ModelItems H | ModelItems e | ModelItems a | ModelItems d | ModelItems e | ModelItems r | ModelItems
Wenn du keine eigenen Headers zu Verfügung stellst, wird eine Defaulteinstellung von QTableWidget greifen - und die nummeriert ab 1.
Du kannst das einfach über setVerticalHeaderLabels machen:QStringList vlist; for (int i=0; i< ui->tableWidget->rowCount(); ++i) vlist << QString::number(i); ui->tableWidget->setVerticalHeaderLabels(vlist);
Ich habe zumindest beim drüberfliegen über http://doc.qt.nokia.com/latest/qtablewidget.html nichts gefunden womit man an den "übrigen" Platz rankäme - was willst du da denn hinschreiben? Einheiten?
-
Meine Tabelle war da nur als Besipiel gedacht.
Schade um den Speicher, wenn man die Vertcial Header alle selber machen muss, um von 0 an zu zählen.
Und das übrige Kästchen wollte ich auch als Horizontalheader zur beschriftung der Spalte benutzen.
Oder kann man die Vertikalen Header irgendwie ausblenden, in der Doku habe ich dazu leider nichts gefunden.
-
Im Designer gibts "verticalHeaderVisible", aber wie das per API geht, weiß ich auch nicht.
-
Danke, das war genau das, was ich gesucht habe
-
QTableWidget erbt von QTableView, da gibts
QHeaderView * QTableView::horizontalHeader () const
und QHeaderView hat show()/hide() iirc, hth