Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. Python, Qt6 and QFormLayout - What I have done wrong?
Forum Updated to NodeBB v4.3 + New Features

Python, Qt6 and QFormLayout - What I have done wrong?

Scheduled Pinned Locked Moved Unsolved Qt for Python
7 Posts 3 Posters 554 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    PythonQTMarlem
    wrote on last edited by
    #1

    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?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      I guess your main widget is based on a QMainWindow ? If so, you can't replace its layout.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • P Offline
        P Offline
        PythonQTMarlem
        wrote on last edited by
        #3
        class FensterKlasse(QMainWindow):
        

        Yes, you guessed it! What should I do?

        JonBJ 1 Reply Last reply
        0
        • P PythonQTMarlem
          class FensterKlasse(QMainWindow):
          

          Yes, you guessed it! What should I do?

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by
          #4

          @PythonQTMarlem
          Read the docs on QMainWindow if you intend to use it. Put a plain QWidget as its central widget, put your QFormLayout on that, if that is what you are wanting.

          1 Reply Last reply
          1
          • P Offline
            P Offline
            PythonQTMarlem
            wrote on last edited by
            #5

            Thanks! It works. It works great!
            But I also had to remove the status bar!

            JonBJ 1 Reply Last reply
            0
            • P PythonQTMarlem

              Thanks! It works. It works great!
              But I also had to remove the status bar!

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #6

              @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 ?

              1 Reply Last reply
              1
              • P Offline
                P Offline
                PythonQTMarlem
                wrote on last edited by
                #7

                Thank you!

                1 Reply Last reply
                0

                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups
                • Search
                • Get Qt Extensions
                • Unsolved