PyQt6: Widget-Breite in einem Layout gleich haltenPython

Python-Programme
Anonymous
 PyQt6: Widget-Breite in einem Layout gleich halten

Post by Anonymous »

Ich habe ein Hauptlayout in PyQt6 mit einer linken und einer rechten Seite (QHBoxLayout enthält zwei Elemente). Ich möchte, dass beide Seiten immer 50 % der Hauptfensterbreite haben. Wenn jedoch ein Widget auf der linken Seite breiter wird, wird die rechte Seite kleiner.
Wie kann ich beide Seiten gleich halten, ohne explizite (maximale) Pixelbreiten festzulegen?
Hier ist ein Minimalbeispiel:

Code: Select all

from PyQt6 import QtWidgets
import sys

class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
layout = QtWidgets.QHBoxLayout()
widget_left = QtWidgets.QLabel()
widget_left.setText("Left: long text without linebreaks")
widget_left.setLineWidth(1)
widget_left.setFrameStyle(QtWidgets.QFrame.Shape.Box)
layout.addWidget(widget_left)
widget_right = QtWidgets.QLabel()
widget_right.setText("Right")
widget_right.setLineWidth(1)
widget_right.setFrameStyle(QtWidgets.QFrame.Shape.Box)
layout.addWidget(widget_right)

widget = QtWidgets.QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
self.setFixedSize(300,100)

app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()

Das Ergebnis sieht so aus:
Image

Wie Sie sehen können, haben links und rechts nicht die gleiche Breite.
Ich habe auch QGridLayout mit dem gleichen Ergebnis ausprobiert. Ich habe verschiedene SizePolicies ausprobiert, konnte aber nicht das gewünschte Ergebnis erzielen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post