Seite 2 von 2
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 01:17
von __blackjack__
Da ist ziemlich Sicherheit an einer Eigenschaft herumgedreht worden. Also neben der Schriftart/bold. Wie man die findet habe ich ja bereits geschrieben.
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 11:56
von StMan
@ __blackjack__
hier sind alle Propertys zu dem QListWidget.
self.DBView = QListWidget(self.centralwidget)
self.DBView.setObjectName(u"DBView")
self.DBView.setGeometry(QRect(330, 100, 180, 110))
font2 = QFont()
font2.setWeight(QFont.DemiBold)
self.DBView.setFont(font2)
self.DBView.setFrameShape(QFrame.Shape.Box)
self.DBView.setLineWidth(2) self.DBView.setSizeAdjustPolicy(QAbstractScrollArea.SizeAdjustPolicy.AdjustIgnored)
self.DBView.setEditTriggers(QAbstractItemView.EditTrigger.EditKeyPressed|QAbstractItemView.EditTrigger.SelectedClicked)
self.DBView.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.DBView.setTextElideMode(Qt.TextElideMode.ElideMiddle)
self.DBView.setSpacing(-1)
self.DBView.setModelColumn(0)
self.DBView.setSelectionRectVisible(False)
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 15:42
von snafu
Ich habe das mal mit PySide6 unter Windows ausprobiert und ebenfalls zu große Abstände zwischen den Einträgen. Geholfen hat bei mir nur ein Setzen des Size Hint für jeden einzelnen Eintrag. Zur Vereinfachung kann man sich eine abgeleitete Klasse dafür erstellen:
Code: Alles auswählen
import sys
from PySide6.QtCore import QSize
from PySide6.QtWidgets import QApplication, QListWidgetItem, QListWidget
class ListWidget(QListWidget):
def __init__(self, items=None, item_height=20, parent=None):
super().__init__(parent)
self.item_height = item_height
if items:
self.addItems(items)
def addItem(self, label):
item = QListWidgetItem(label)
item.setSizeHint(QSize(0, self.item_height))
super().addItem(item)
def addItems(self, labels):
for label in labels:
self.addItem(label)
def main():
app = QApplication(sys.argv)
list_widget = ListWidget(["Spam", "Ham", "Eggs"])
list_widget.show()
sys.exit(app.exec())
if __name__ == "__main__":
main()
EDIT: Scheint aber auch direkt auf einem QListWidget mittels setSpacing(-5) zu funktionieren. Allerdings überlappt dann der andersfarbige Hintergrund beim Markieren von Elementen, weil der wohl nicht dementsprechend verkleinert wurde. Wirklich schön ist das beides nichts.
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 16:56
von StMan

Spacing -5 funktioniert bei mir gut
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 16:58
von __blackjack__
Ja, vielleicht bei Dir, aber das macht die GUI bei anderen kaputt. Es sollte keinen Grund geben von der Voreinstellung 0 abzuweichen, schon gar nichts ins negative.
Bei mir habe ich das nicht so komisch. Dazu müsste ich `spacing` _hoch_ stellen um das so aufgeblasen darzustellen. Der Defaultwert davon ist 0. Das negativ zu machen, also -5, macht das im Grunde unbenutzbar. Das sieht dann so aus:

Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 17:31
von StMan
wo kann ich die farbe für den Cursorbalken einstellen, bei mir ist er hellgrau und kaum zu sehen.
Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 19:00
von StMan
ist doch OK, möchte nur noch eine andere Farbe. Wie kann ich die ändern?

Re: Grundsätzliche Frage zu Qt
Verfasst: Sonntag 22. Februar 2026, 20:00
von snafu
@StMan
Mal so ganz grundsätzlich: Man kann auch ein anderes Theme benutzen. Eine Liste aller verfügbaren Themes erhältst du mit ``print(QStyleFactory().keys())``. Ein anderes Theme stellt man mit der setStyle()-Mehode des QApplication-Objekts ein, indem man den Namen des Themes als String übergibt. Mir ist aufgefallen, dass eigentlich nur beim Theme "windows11" dieser große Abstand gesetzt wird. Somit dürfte dann auch dieser unschöne spacing-Hack nicht mehr notwendig sein.