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
Qt 6.11 is out! See what's new in the release blog

Cannot resize QPlainTextEdit

Scheduled Pinned Locked Moved Unsolved Qt for Python
3 Posts 2 Posters 780 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.
  • G Offline
    G Offline
    Gygabrain
    wrote on 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
    0
    • G Gygabrain

      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 last edited by
      #2

      @Gygabrain
      Try to set a minimum height.

      G 1 Reply Last reply
      0
      • M mpergand

        @Gygabrain
        Try to set a minimum height.

        G Offline
        G Offline
        Gygabrain
        wrote on 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

        • Login

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