Python, Qt6 and QFormLayout - What I have done wrong?
-
Hello,
Python Qt6.
My code:def GUI(self): self.setWindowTitle("PyQt6 Telefonnummer-Verwaltung") self.setGeometry(500, 300, 360, 250) self.setAccessibleDescription("Programmfenster für PyQt6 Telefonnummer-Verwaltung") self.toolbar = self.addToolBar("PyQt6 Telefonnummer-Verwaltung") self.lbl_schriftgroessen = QLabel('&Schriftgröße ', self) self.lbl_schriftgroessen.setStyleSheet("font-size: 20px") self.lbl_schriftgroessen.setAccessibleDescription('Beschriftung für Aufklappbare Liste Schriftgröße') schriftgroessen = ["10", "12", "14", "16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40"] schriftgroessen.sort() self.cbxschriftgroesse = QComboBox(self) self.cbxschriftgroesse.setStyleSheet('font-size: 20px') self.cbxschriftgroesse.setAccessibleDescription('Auswahlliste für Schriftgröße') self.cbxschriftgroesse.addItems(schriftgroessen) self.cbxschriftgroesse.setCurrentIndex(5) self.cbxschriftgroesse.currentIndexChanged.connect(self.schrift_aendern) self.toolbar.addWidget(self.lbl_schriftgroessen) self.toolbar.addWidget(self.cbxschriftgroesse) self.lbl_schriftgroessen.setBuddy(self.cbxschriftgroesse) self.edt_vorname = QLineEdit(self) self.edt_vorname.setStyleSheet('font-size: 20px') self.edt_vorname.setAccessibleDescription('Eingabefeld für Vorname') self.lbl_vorname = QLabel('&Vorname:', self) self.lbl_vorname.setStyleSheet("font-size: 20px") self.lbl_vorname.setAccessibleDescription('Beschriftung für Eingabefeld Vorname') self.lbl_vorname.setBuddy(self.edt_vorname) self.edt_nachname = QLineEdit(self) self.edt_nachname.setStyleSheet('font-size: 20px') self.edt_nachname.setAccessibleDescription('Eingabefeld für Nachname') self.lbl_nachname = QLabel('&Nachname:', self) self.lbl_nachname.setStyleSheet('font-size: 20px') self.lbl_nachname.setAccessibleDescription('Beschriftung für Eingabefeld Nachname') self.lbl_nachname.setBuddy(self.edt_nachname) self.edt_telefonnummer = QLineEdit(self) self.edt_telefonnummer.setStyleSheet("font-size: 20px") self.edt_telefonnummer.setAccessibleDescription('Eingabefeld fürTelefonnmummer') self.lbl_telefonnummer = QLabel('&Telefonnmummer:', self) self.lbl_telefonnummer.setStyleSheet('font-size: 20px') self.lbl_telefonnummer.setAccessibleDescription('Beschriftung für Eingabefeld Telefonnmummer') self.lbl_telefonnummer.setBuddy(self.edt_telefonnummer) self.btn_daten_exportieren = QPushButton("&Daten exportieren", self) self.btn_daten_exportieren.setStyleSheet('font-size: 20px') self.btn_daten_exportieren.setAccessibleDescription('Daten exportieren') self.btn_daten_exportieren.setToolTip('Eingabefelder in CSV-Datei Schreiben') self.btn_daten_exportieren.setDefault(True) self.btn_daten_exportieren.clicked.connect(self.csv_export) self.btn_programm_beenden = QPushButton("&Ende", self) self.btn_programm_beenden.setStyleSheet('font-size: 20px') self.btn_programm_beenden.setAccessibleDescription('Programm beenden') self.btn_programm_beenden.setToolTip('Programm beenden') self.btn_programm_beenden.setDefault(True) self.btn_programm_beenden.clicked.connect(self.programm_beeden) formLayout = QFormLayout() formLayout.addRow(self.lbl_vorname, self.edt_vorname) formLayout.addRow(self.lbl_nachname, self.edt_nachname) formLayout.addRow(self.lbl_telefonnummer, self.edt_telefonnummer) formLayout.addRow(self.btn_daten_exportieren, self.btn_programm_beenden) self.setLayout(formLayout) self.statusBar().showMessage("Status bereit") self.statusBar().setAccessibleDescription("Status bereit")
When I start the program, all labels and input fields are not displayed.
Question:
What I have done wrong? -
Hi,
I guess your main widget is based on a QMainWindow ? If so, you can't replace its layout.
-
class FensterKlasse(QMainWindow):
Yes, you guessed it! What should I do?
-
class FensterKlasse(QMainWindow):
Yes, you guessed it! What should I do?
@PythonQTMarlem
Read the docs onQMainWindow
if you intend to use it. Put a plainQWidget
as its central widget, put yourQFormLayout
on that, if that is what you are wanting. -
Thanks! It works. It works great!
But I also had to remove the status bar! -
Thanks! It works. It works great!
But I also had to remove the status bar!@PythonQTMarlem said in Python, Qt6 and QFormLayout - What I have done wrong?:
But I also had to remove the status bar!
I don't know why, a
QMainWindow
has a status bar just as you already were using one. Did you stop and take the time to read https://doc.qt.io/qt-6/qmainwindow.html#details ? -
Thank you!