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. Cannot resize QPlainTextEdit
Forum Update on Monday, May 27th 2025

Cannot resize QPlainTextEdit

Scheduled Pinned Locked Moved Unsolved Qt for Python
3 Posts 2 Posters 287 Views
  • 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.
  • G Offline
    G Offline
    Gygabrain
    wrote on 15 Aug 2023, 22:53 last edited by
    #1

    I have the following layout:
    Без имени-1.png

    Here's how it's implemented:

    class Block(QFrame):
        def __init__(self, parent):
            super().__init__(parent=parent)
            self.setObjectName("Block")
            self.setStyleSheet("QFrame#Block {background-color: rgba(0, 0, 0, 0.1);} "
                               "QWidget#InnerWidget {background-color: rgba(0, 0, 0, 0.1);}")
            self.main_layout = QVBoxLayout(self)
    
        def add_button(self, name):
            w = QWidget(self, objectName="InnerWidget")
            l = QHBoxLayout(w)
    
            l.addWidget(QLabel(name, parent=w))
            l.addWidget(QPushButton(name, parent=w))
            self.main_layout.addWidget(w)
    
        def add_text_area(self, name):
            w = QWidget(self, objectName="InnerWidget")
            l = QVBoxLayout(w)
            title_widget = QWidget(w)
            title_layout = QHBoxLayout(title_widget)
            title_layout.addWidget(QLabel(name, parent=w))
            title_layout.addWidget(QLabel(name, parent=w))
            l.addWidget(title_widget)
    
            text_edit = QPlainTextEdit(parent=w)
            l.addWidget(text_edit)
            self.main_layout.addWidget(w)
    
    
    class Column(QWidget):
        def __init__(self, parent):
            super().__init__(parent=parent)
            self.setObjectName("Column")
            layout = QVBoxLayout(self)
            layout.setSpacing(20)
            self.setStyleSheet("background: transparent;")
    
        def add_block(self, block):
            self.layout().addWidget(block)
    
    
    class RootWidget(QFrame):
        def __init__(self):
            super().__init__()
            self.setObjectName("RootWidget")
            self.setStyleSheet("background-color: rgb(80, 80, 80); color: white;")
            self.setAutoFillBackground(True)
    
            layout = QHBoxLayout(self)
            self.main_widget = QScrollArea(parent=self)
            self.columns = QWidget(parent=self.main_widget)
            self.columns_layout = QHBoxLayout(self.columns)
    
            self.column_1 = Column(self.columns)
            self.column_2 = Column(self.columns)
            self.column_3 = Column(self.columns)
    
            for column in [self.column_1, self.column_2, self.column_3]:
                for i in range(3):
                    block = Block(column)
                    for j in range(10):
                        block.add_button(str(j))
                        if i == 1 and j == 9:
                            block.add_text_area("TEST")
                    column.add_block(block)
                column.layout().addStretch()
                self.columns_layout.addWidget(column)
    
            self.main_widget.setWidget(self.columns)
            layout.addWidget(self.main_widget)
    

    This is what I end up with:
    python_CWKlwNxuVG.png

    Problem: I can't resize QPlainTextEdit in any way. How can this be done?

    I have tried resize(), setGeometry(), however nothing has worked.

    def add_text_area(self, name):
        w = QWidget(self, objectName="InnerWidget")
        l = QVBoxLayout(w)
        title_widget = QWidget(w)
        title_layout = QHBoxLayout(title_widget)
        title_layout.addWidget(QLabel(name, parent=w))
        title_layout.addWidget(QLabel(name, parent=w))
        l.addWidget(title_widget)
    
        text_edit = QPlainTextEdit(parent=w)
        text_edit.resize(100, 1000)
        # or text_edit.setGeometry(text_edit.geometry().x(), text_edit.geometry.y(), 100, 1000)
        l.addWidget(text_edit)
        self.main_layout.addWidget(w)
    
    M 1 Reply Last reply 15 Aug 2023, 23:33
    0
    • G Gygabrain
      15 Aug 2023, 22:53

      I have the following layout:
      Без имени-1.png

      Here's how it's implemented:

      class Block(QFrame):
          def __init__(self, parent):
              super().__init__(parent=parent)
              self.setObjectName("Block")
              self.setStyleSheet("QFrame#Block {background-color: rgba(0, 0, 0, 0.1);} "
                                 "QWidget#InnerWidget {background-color: rgba(0, 0, 0, 0.1);}")
              self.main_layout = QVBoxLayout(self)
      
          def add_button(self, name):
              w = QWidget(self, objectName="InnerWidget")
              l = QHBoxLayout(w)
      
              l.addWidget(QLabel(name, parent=w))
              l.addWidget(QPushButton(name, parent=w))
              self.main_layout.addWidget(w)
      
          def add_text_area(self, name):
              w = QWidget(self, objectName="InnerWidget")
              l = QVBoxLayout(w)
              title_widget = QWidget(w)
              title_layout = QHBoxLayout(title_widget)
              title_layout.addWidget(QLabel(name, parent=w))
              title_layout.addWidget(QLabel(name, parent=w))
              l.addWidget(title_widget)
      
              text_edit = QPlainTextEdit(parent=w)
              l.addWidget(text_edit)
              self.main_layout.addWidget(w)
      
      
      class Column(QWidget):
          def __init__(self, parent):
              super().__init__(parent=parent)
              self.setObjectName("Column")
              layout = QVBoxLayout(self)
              layout.setSpacing(20)
              self.setStyleSheet("background: transparent;")
      
          def add_block(self, block):
              self.layout().addWidget(block)
      
      
      class RootWidget(QFrame):
          def __init__(self):
              super().__init__()
              self.setObjectName("RootWidget")
              self.setStyleSheet("background-color: rgb(80, 80, 80); color: white;")
              self.setAutoFillBackground(True)
      
              layout = QHBoxLayout(self)
              self.main_widget = QScrollArea(parent=self)
              self.columns = QWidget(parent=self.main_widget)
              self.columns_layout = QHBoxLayout(self.columns)
      
              self.column_1 = Column(self.columns)
              self.column_2 = Column(self.columns)
              self.column_3 = Column(self.columns)
      
              for column in [self.column_1, self.column_2, self.column_3]:
                  for i in range(3):
                      block = Block(column)
                      for j in range(10):
                          block.add_button(str(j))
                          if i == 1 and j == 9:
                              block.add_text_area("TEST")
                      column.add_block(block)
                  column.layout().addStretch()
                  self.columns_layout.addWidget(column)
      
              self.main_widget.setWidget(self.columns)
              layout.addWidget(self.main_widget)
      

      This is what I end up with:
      python_CWKlwNxuVG.png

      Problem: I can't resize QPlainTextEdit in any way. How can this be done?

      I have tried resize(), setGeometry(), however nothing has worked.

      def add_text_area(self, name):
          w = QWidget(self, objectName="InnerWidget")
          l = QVBoxLayout(w)
          title_widget = QWidget(w)
          title_layout = QHBoxLayout(title_widget)
          title_layout.addWidget(QLabel(name, parent=w))
          title_layout.addWidget(QLabel(name, parent=w))
          l.addWidget(title_widget)
      
          text_edit = QPlainTextEdit(parent=w)
          text_edit.resize(100, 1000)
          # or text_edit.setGeometry(text_edit.geometry().x(), text_edit.geometry.y(), 100, 1000)
          l.addWidget(text_edit)
          self.main_layout.addWidget(w)
      
      M Offline
      M Offline
      mpergand
      wrote on 15 Aug 2023, 23:33 last edited by
      #2

      @Gygabrain
      Try to set a minimum height.

      G 1 Reply Last reply 16 Aug 2023, 00:05
      0
      • M mpergand
        15 Aug 2023, 23:33

        @Gygabrain
        Try to set a minimum height.

        G Offline
        G Offline
        Gygabrain
        wrote on 16 Aug 2023, 00:05 last edited by
        #3

        @mpergand it doesn't work for me, because I want to make an animation for QPlainTextEdit, which will exactly change its height (something like a dropdown widget animation), and setMinimumHeight() won't let me change the height to 0.

        1 Reply Last reply
        0
        • SGaistS SGaist moved this topic from General and Desktop on 16 Aug 2023, 19:43

        1/3

        15 Aug 2023, 22:53

        • Login

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