PyQt6 QTableWidget Ganze Zeile statt nur eine Zelle markieren
Verfasst: Freitag 17. Mai 2024, 20:21
Hallo,
ich habe eine Tabelle mit dem QTableWidget erstellt. Klicke ich in diese Tabelle, wird die entsprechende Zelle markiert.
Anstatt einer Zelle möchte ich gerne die komplette Zeile markiert haben (rein aus optischen Gründen)
UI Datei
Der Beispielcode
Klickt man z.B. links auf "Zeile 1" wird die ganze Zeile markiert, klickt man in ein anderes Feld, wird nur dieses markiert.
Egal wo ich hin klicke, ich möchte das immer die ganze Zeile markiert wird. Hat jemand eine Idee?
Meine Versuche funktionieren leider nicht und im Netz finde ich nur Beispiele für PyQt4 und PyQt5, das funktioniert in der 6er Version anscheinend aber nicht mehr.
https://stackoverflow.com/questions/778 ... ew-in-pyqt
ich habe eine Tabelle mit dem QTableWidget erstellt. Klicke ich in diese Tabelle, wird die entsprechende Zelle markiert.
Anstatt einer Zelle möchte ich gerne die komplette Zeile markiert haben (rein aus optischen Gründen)
UI Datei
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>368</width>
<height>294</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QTableWidget" name="tableWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>351</width>
<height>271</height>
</rect>
</property>
<row>
<property name="text">
<string>Zeile 1</string>
</property>
</row>
<row>
<property name="text">
<string>Zeile 2</string>
</property>
</row>
<row>
<property name="text">
<string>Zeile 3</string>
</property>
</row>
<row>
<property name="text">
<string>Zeile 4</string>
</property>
</row>
<row>
<property name="text">
<string>Zeile 5</string>
</property>
</row>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Ort</string>
</property>
</column>
<column>
<property name="text">
<string>Jahr</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>Max</string>
</property>
</item>
<item row="0" column="1">
<property name="text">
<string>Berlin</string>
</property>
</item>
<item row="0" column="2">
<property name="text">
<string>1958</string>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string>Lisa</string>
</property>
</item>
<item row="1" column="1">
<property name="text">
<string>München</string>
</property>
</item>
<item row="1" column="2">
<property name="text">
<string>2004</string>
</property>
</item>
<item row="2" column="0">
<property name="text">
<string>Hannes</string>
</property>
</item>
<item row="2" column="1">
<property name="text">
<string>Hamburg</string>
</property>
</item>
<item row="2" column="2">
<property name="text">
<string>1999</string>
</property>
</item>
<item row="3" column="0">
<property name="text">
<string>Hildegard</string>
</property>
</item>
<item row="3" column="1">
<property name="text">
<string>Bremen</string>
</property>
</item>
<item row="3" column="2">
<property name="text">
<string>1952</string>
</property>
</item>
<item row="4" column="0">
<property name="text">
<string>Olaf</string>
</property>
</item>
<item row="4" column="1">
<property name="text">
<string>Kassel</string>
</property>
</item>
<item row="4" column="2">
<property name="text">
<string>1987</string>
</property>
</item>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
Code: Alles auswählen
import sys
from PyQt6.uic import loadUi
from PyQt6.QtWidgets import QApplication, QMainWindow, QTableWidget
class MyApp(QMainWindow):
def __init__(self):
super().__init__()
loadUi('myapp.ui', self)
# Tabelle Einstellungen
self.tableWidget.setColumnWidth(0, 100)
self.tableWidget.setColumnWidth(1, 100)
self.tableWidget.setColumnWidth(2, 50)
# soll beim Klick auf eine Zelle die ganze Zeile auswählen
#self.tableWidget.setSelectionBehavior(QTableWidget.selectRow)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec())
Egal wo ich hin klicke, ich möchte das immer die ganze Zeile markiert wird. Hat jemand eine Idee?
Meine Versuche funktionieren leider nicht und im Netz finde ich nur Beispiele für PyQt4 und PyQt5, das funktioniert in der 6er Version anscheinend aber nicht mehr.
https://stackoverflow.com/questions/778 ... ew-in-pyqt