Qt-Modellansichts-Framework: QTableWidget, QTableView, QListWidgetItem

QTableWidget

1. Beschreibung

Standardformular-Widget. Elemente in einem QTableWidget werden von QTableWidgetItem bereitgestellt.

Wie benutzt man:

tableWidget = new QTableWidget(12, 3, this);
tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);

oder:

QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
tableWidget->setItem(row, column, newItem);

2. Mitgliederfunktionen

2.1. Signal

1、void cellActivated(int row, int columns)

Dieses Signal wird ausgegeben, wenn die durch die Zeile und Spalte angegebene Zelle aktiviert wird.

2、void cellChanged(int row, int columns)

Dieses Signal wird immer dann ausgegeben, wenn sich die Artikeldaten in der durch Zeile und Spalte angegebenen Zelle ändern.

3、void cellClicked(int row, int columns)

Dieses Signal wird immer dann ausgegeben, wenn auf eine Zelle in der Tabelle geklickt wird. Die angegebene Zeile und Spalte ist die angeklickte Zelle.

4、void cellDoubleClicked(int row, int columns)

Dieses Signal wird immer dann ausgegeben, wenn auf eine Zelle in der Tabelle doppelgeklickt wird. Die angegebene Zeile und Spalte sind die doppelgeklickten Zellen.

5、void cellEntered(int row, int columns)

Dieses Signal wird ausgegeben, wenn der Mauszeiger eine Zelle betritt. Zellen werden nach Zeile und Spalte angegeben.

Dieses Signal wird nur ausgegeben, wenn MouseTracking aktiviert ist oder wenn die Maustaste gedrückt wird, während man sich zu einem Element bewegt.

6、void cellPressed(int row, int columns)

Dieses Signal wird immer dann ausgegeben, wenn eine Zelle in der Tabelle gedrückt wird. Die angegebene Zeile und Spalte ist die gedrückte Zelle.

7、void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)

Dieses Signal wird ausgegeben, wenn sich die aktuelle Zelle ändert. Die durch previousRow und previousColumn angegebene Zelle ist die zuvor fokussierte Zelle, und die durch currentRow und currentColumn angegebene Zelle ist die neue aktuelle Zelle.

8、void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem * previous)

Dieses Signal wird immer dann ausgegeben, wenn sich das aktuelle Element ändert. previous ist das zuvor fokussierte Element und current ist das neue aktuelle Element.

9、void itemActivated(QTableWidgetItem *item)

Dieses Signal wird ausgegeben, wenn das angegebene Element aktiviert wird.

10、void itemChanged(QTableWidgetItem *item)

Dieses Signal wird immer dann ausgegeben, wenn sich die Daten des Artikels ändern.

11、void itemClicked(QTableWidgetItem *item)

Dieses Signal wird immer dann ausgegeben, wenn auf ein Element in der Tabelle geklickt wird.

12、void itemDoubleClicked(QTableWidgetItem *item)

Dieses Signal wird immer dann ausgegeben, wenn auf ein Element in der Tabelle doppelgeklickt wird.

13、void itemEntered(QTableWidgetItem *item)

Dieses Signal wird ausgegeben, wenn der Mauszeiger ein Element betritt.

Dieses Signal wird nur ausgegeben, wenn MouseTracking aktiviert ist oder wenn die Maustaste gedrückt wird, während man sich zu einem Element bewegt.

14、void itemPressed(QTableWidgetItem *item)

Dieses Signal wird immer dann ausgegeben, wenn ein Element in der Tabelle gedrückt wird.

15、void itemSelectionChanged()

Dieses Signal wird immer dann ausgegeben, wenn sich die Auswahl ändert.

2.2, Funktion

1、void clear()、void clearContents()

clear() entfernt alle Elemente in der Ansicht. Dadurch werden auch alle Auswahlen und Kopfzeilen entfernt. Wenn Sie die Header nicht entfernen möchten, verwenden Sie clearContents(). Die Abmessungen des Tisches bleiben gleich.

2、void insertColumn(int columns) / void insertRow(int row)

Leere Spalten/Zeilen einfügen.

3、void RemoveColumn(int Column) / void RemoveRow(int Row)

Eine Spalte/Zeile aus einer Tabelle löschen.

4、void scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = ConsiderVisible)

Scrollen Sie bei Bedarf durch die Ansicht, um sicherzustellen, dass das Element sichtbar ist. Der Hinweis gibt an, wo sich das Element nach dem Vorgang befinden soll.

5、int Column(const QTableWidgetItem *item) / int row(const QTableWidgetItem *item)

Rufen Sie die Spalte/Zeile ab, in der sich das Element befindet.

6、QList<QTableWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags)

Findet mithilfe der angegebenen Flags Elemente, die mit dem Text übereinstimmen.

7、QModelIndex indexFromItem(const QTableWidgetItem *item)

Gibt den QModelIndex zurück, der dem angegebenen Element zugeordnet ist.

8、QTableWidgetItem * itemFromIndex(const QModelIndex &index)

Gibt einen Zeiger auf das QTableWidgetItem zurück, das dem angegebenen Index zugeordnet ist.

9、QTableWidgetItem * itemAt(const QPoint &point)

Gibt einen Zeiger auf das Element am angegebenen Punkt zurück.

10、const QTableWidgetItem * itemPrototype()

void setItemPrototype(const QTableWidgetItem *item)

Setzt den Elementprototyp der Tabelle auf das angegebene Element.

Das Tabellen-Widget verwendet die Funktion zum Klonen des Elementarchetyps, wenn es ein neues Tabellenelement erstellen muss. Der Tisch ist Eigentümer des Prototyps.

11、QList<QTableWidgetItem *> items(const QMimeData *data)

Gibt eine Liste von Zeigern auf die im Datenobjekt enthaltenen Elemente zurück. Die Liste ist leer, wenn das Objekt nicht im selben Prozess von einem QTreeWidget erstellt wurde.

12、void removeCellWidget(int row, int columns)

void setCellWidget(int row, int column, QWidget *widget)
QWidget * cellWidget(int row, int column)

Legt fest, dass das angegebene Widget in der Zelle der angegebenen Zeile und Spalte angezeigt wird, und übergibt den Besitz des Widgets an die Tabelle.

Wenn Zellen-Widget A durch Zellen-Widget B ersetzt wird, wird Zellen-Widget A entfernt.

Im folgenden Codeausschnitt wird beispielsweise das QLineEdit-Objekt gelöscht.

setCellWidget(row, column, new QLineEdit);
...
setCellWidget(row, column, new QTextEdit);

13、QList<QTableWidgetItem *> selectedItems()

Gibt eine Liste aller ausgewählten Elemente zurück. Diese Funktion gibt eine Liste von Zeigern auf den Inhalt der ausgewählten Zellen zurück. Verwenden Sie die Funktion selectedIndexes(), um die vollständige Auswahl einschließlich leerer Zellen abzurufen.

14、QList<QTableWidgetSelectionRange> selectedRanges()

Gibt eine Liste aller ausgewählten Bereiche zurück.

15、void setHorizontalHeaderItem(int Column, QTableWidgetItem *item)

void setVerticalHeaderItem(int row, QTableWidgetItem *item)

Legen Sie das Titelelement fest. Bei Bedarf wird die Anzahl der Spalten/Zeilen passend zum Projekt hinzugefügt. Das vorherige Headerelement (falls vorhanden) wird entfernt.

16、void setHorizontalHeaderLabels(const QStringList &labels)

void setVerticalHeaderLabels(const QStringList &labels)

Legen Sie die Titelbeschriftung fest.

17、void setRangeSelected(const QTableWidgetSelectionRange &range, bool select)

Wählen Sie Bereiche basierend auf der Auswahl aus oder ab.

18、void sortItems(int Column, Qt::SortOrder order = Qt::AscendingOrder)

Sortiert alle Zeilen in einem Tabellen-Widget basierend auf Spalte und Reihenfolge.

19、QTableWidgetItem * takeHorizontalHeaderItem(int Column)

QTableWidgetItem * takeVerticalHeaderItem(int row)

Entfernen Sie horizontale Kopfzeilenelemente in der Spalte aus der Kopfzeile, ohne das Element zu entfernen.

20、QTableWidgetItem * takeItem(int row, int columns)

Entfernt Zeilen- und Spaltenelemente aus der Tabelle, ohne das Element zu löschen.

21、QRect visualItemRect(const QTableWidgetItem *item)

Gibt das Rechteck im Ansichtsfenster zurück, das das Element einnimmt.

Die Vorteile dieses Artikels: Kostenloses Qt-Entwicklungs-Lernmaterialpaket, technisches Video, einschließlich (C++-Sprachgrundlage, Einführung in die Qt-Programmierung, QT-Signal- und Slot-Mechanismus, QT-Schnittstellenentwicklung – Bildzeichnung, QT-Netzwerk, QT-Datenbankprogrammierung, QT Projektkampf, QT-Embedded-Entwicklung, Schnellmodul usw.) ↓↓↓↓↓↓Siehe unten↓↓Klicken Sie auf das Ende des Artikels, um die Gebühr zu erhalten↓↓

QTableView

1. Beschreibung

QTableView implementiert eine Tabellenansicht zum Anzeigen von Elementen in einem Modell.

Zweitens: Attributmitglieder

1、cornerButtonEnabled: bool

Diese Eigenschaft legt fest, ob die Schaltfläche in der oberen linken Ecke aktiviert ist. Der Standardwert ist wahr.

Wenn diese Eigenschaft wahr ist, ist die Schaltfläche in der oberen linken Ecke der Tabellenansicht aktiviert. Durch Klicken auf diese Schaltfläche werden alle Zellen in der Tabellenansicht ausgewählt.

2、gridStyle: Qt::PenStyle

Diese Eigenschaft enthält den Stil, der beim Zeichnen des Rasters verwendet wird.

3、showGrid: bool

Diese Eigenschaft gilt unabhängig davon, ob das Raster angezeigt wird oder nicht.

4、sortingEnabled: bool

Diese Eigenschaft legt fest, ob die Sortierung aktiviert ist. Der Standardwert ist false.

5、wordWrap: bool

Diese Eigenschaft enthält die Zeilenumbruchrichtlinie für den Elementtext. Der Standardwert ist wahr.

3. Mitgliederfunktionen

1、void hideColumn(int columns) / void hideRow(int row)

  • void showColumn(int Column) / void showRow(int row)
  • bool isColumnHidden(int Column) / bool isRowHidden(int row)
  • void setColumnHidden(int columns, bool hide) / void setRowHidden(int row, bool hide)
  • Spalten/Zeilen ein- und ausblenden.

2、void resizeColumnToContents(int Column) / void resizeColumnsToContents()

void resizeRowToContents(int row) / void resizeRowsToContents()

Ändert die Größe der Spalte/Zeile entsprechend dem Größenhinweis des Delegaten, der zum Rendern jedes Elements in der Spalte verwendet wird.

3、void selectColumn(int columns) / void selectRow(int row)

Wählen Sie Spalten/Zeilen aus.

4、void sortByColumn(int columns, Qt::SortOrder order)

Sortieren Sie das Modell nach Wert und Reihenfolge in der angegebenen Spalte.

5、void clearSpans()

Entfernt alle Zeilen- und Spaltenbereiche in der Tabellenansicht.

6、int ColumnAt(int x) / int rowAt(int y)

Gibt die Spalte/Zeile an der angegebenen x-Koordinate x in Inhaltskoordinaten zurück.

7、int ColumnViewportPosition(int Column) / int RowViewportPosition(int Row)

Gibt die x-Koordinate in Inhaltskoordinaten der angegebenen Spalte zurück. / Gibt die y-Koordinate in den Inhaltskoordinaten der angegebenen Zeile zurück.

8、int ColumnWidth(int Column) / int RowHeight(int Row)

void setColumnWidth(int column, int width) / void setRowHeight(int row, int height)

Spaltenbreite/Zeilenhöhe.

QListWidgetItem

1. Beschreibung

QListWidgetItem stellt ein einzelnes Element in einem QListWidget dar. Jedes Element kann mehrere Informationen enthalten und zeigt diese entsprechend an.

Wenn Sie QListWidgetItem in eine Unterklasse umwandeln, um benutzerdefinierte Elemente bereitzustellen, stellen Sie sicher, dass Sie den Basisklassenkonstruktor im Konstruktor mit einem neuen Typwert aufrufen, der gleich oder größer als UserType ist.

Zweitens: Geben Sie Member ein

1. Enumeration QListWidgetItem::ItemType: Diese Enumeration beschreibt den Typ, der zum Beschreiben des Listen-Widget-Elements verwendet wird.

  • Typ: Der Standardtyp für Listen-Widget-Elemente.
  • UserType: Der Mindestwert für einen benutzerdefinierten Typ. Werte unterhalb von UserType sind für Qt reserviert.

3. Mitgliederfunktionen

1、QBrush Hintergrund() / void setBackground(const QBrush &brush)

Hintergrundpinsel.

2、Qt::CheckState checkState() / void setCheckState(Qt::CheckState state)

Geprüfter Zustand.

  • Aufzählung Qt::CheckState
  • Qt::Unchecked: Das Element ist nicht überprüft.
  • Qt::PartiallyChecked: Das Element ist teilweise überprüft. Wenn einige, aber nicht alle Unterschlüssel überprüft werden.
  • Qt::Checked: Das Element ist geprüft.

3、QListWidgetItem * clone()

Erstellen Sie eine Kopie des Projekts.

4、QVariant-Daten (int-Rolle) / void setData(int-Rolle, const QVariant &value)

Die Gegenstandsdaten des Charakters. Implementieren Sie diese Funktion erneut, wenn Sie zusätzliche Zeichen oder ein besonderes Verhalten für einige Zeichen benötigen.

5、Qt::ItemFlags flags() / void setFlags(Qt::ItemFlags flags)

Gibt das Projektflag für dieses Projekt zurück.

  • Aufzählung Qt::ItemFlag
  • Qt::NoItemFlags: Es ist keine Eigenschaft festgelegt.
  • Qt::ItemIsSelectable: wählbar.
  • Qt::ItemIsEditable: kann bearbeitet werden.
  • Qt::ItemIsDragEnabled: Kann gezogen werden.
  • Qt::ItemIsDropEnabled: Kann gelöscht werden.
  • Qt::ItemIsUserCheckable: Kann vom Benutzer aktiviert oder deaktiviert werden.
  • Qt::ItemIsEnabled: Der Benutzer kann mit dem Element interagieren.
  • Qt::ItemIsAutoTristate: Der Status eines Elements hängt vom Status seiner untergeordneten Elemente ab. Dadurch wird automatisch der Status des übergeordneten Elements im QTreeWidget verwaltet (überprüft, wenn alle untergeordneten Elemente aktiviert sind, deaktiviert, wenn alle untergeordneten Elemente deaktiviert sind, oder teilweise aktiviert, wenn nur einige untergeordnete Elemente aktiviert sind).
  • Qt::ItemNeverHasChildren: Das Element hat keine untergeordneten Elemente.
  • Qt::ItemIsUserTristate: Kann zwischen drei separaten Zuständen wechseln.

6、QBrush foreground() / void setForeground(const QBrush &brush)

Vordergrundpinsel.

7、void setIcon(const QIcon &icon) / QIcon icon()

Symbol.

8、void setHidden(bool hide) / bool isHidden()

Ob man sich verstecken soll.

9、bool isSelected() / void setSelected(bool select)

Ob ausgewählt werden soll.

10、QListWidget * listWidget()

Das zugehörige QListWidget.

11、void setStatusTip(const QString &statusTip)

Setzt den Statustipp des Listenelements auf den durch statusTip angegebenen Text. QListWidget setMouseTracking(true) muss aktiviert sein, um diese Funktion nutzen zu können.

12、void setToolTip(const QString &toolTip)

Setzt den Tooltip des Listenelements auf den durch den Tooltip angegebenen Text

Die Vorteile dieses Artikels: Kostenloses Qt-Entwicklungs-Lernmaterialpaket, technisches Video, einschließlich (C++-Sprachgrundlage, Einführung in die Qt-Programmierung, QT-Signal- und Slot-Mechanismus, QT-Schnittstellenentwicklung – Bildzeichnung, QT-Netzwerk, QT-Datenbankprogrammierung, QT Projektkampf, QT-Embedded-Entwicklung, Schnellmodul usw.) ↓↓↓↓↓↓Siehe unten↓↓Klicken Sie auf das Ende des Artikels, um die Gebühr zu erhalten↓↓

Ursprünglicher Link: https://blog.csdn.net/kenfan1647/article/details/119702702

Guess you like

Origin blog.csdn.net/hw5230/article/details/131944652