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 Updated to NodeBB v4.3 + New Features

Cannot resize QPlainTextEdit

Scheduled Pinned Locked Moved Unsolved Qt for Python
3 Posts 2 Posters 287 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