Expanding width of Combobox












0















I have a Qcombobox, which I want to set a specific width, which is not depending on item width. I have looked around and find some tips and hints only for C++. I do not have any knowledge on that language!!



What I get by first run:



enter image description here



What I want to get by first run:



enter image description here



from PyQt5 import QtCore, QtWidgets

class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setLayout(QtWidgets.QVBoxLayout())
combo = QtWidgets.QComboBox(self)
self.layout().addWidget(combo)
combo.addItems(["item1", "item2", "item3"])
combo.activated[str].connect(self.onActivatedText)

@QtCore.pyqtSlot(str)
def onActivatedText(self, text):
print(text)

if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())


An ugly solution is:



        combo.addItems(["item1     ", "item2     ", "item3     "])









share|improve this question





























    0















    I have a Qcombobox, which I want to set a specific width, which is not depending on item width. I have looked around and find some tips and hints only for C++. I do not have any knowledge on that language!!



    What I get by first run:



    enter image description here



    What I want to get by first run:



    enter image description here



    from PyQt5 import QtCore, QtWidgets

    class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
    QtWidgets.QWidget.__init__(self, parent)
    self.setLayout(QtWidgets.QVBoxLayout())
    combo = QtWidgets.QComboBox(self)
    self.layout().addWidget(combo)
    combo.addItems(["item1", "item2", "item3"])
    combo.activated[str].connect(self.onActivatedText)

    @QtCore.pyqtSlot(str)
    def onActivatedText(self, text):
    print(text)

    if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())


    An ugly solution is:



            combo.addItems(["item1     ", "item2     ", "item3     "])









    share|improve this question



























      0












      0








      0








      I have a Qcombobox, which I want to set a specific width, which is not depending on item width. I have looked around and find some tips and hints only for C++. I do not have any knowledge on that language!!



      What I get by first run:



      enter image description here



      What I want to get by first run:



      enter image description here



      from PyQt5 import QtCore, QtWidgets

      class Widget(QtWidgets.QWidget):
      def __init__(self, parent=None):
      QtWidgets.QWidget.__init__(self, parent)
      self.setLayout(QtWidgets.QVBoxLayout())
      combo = QtWidgets.QComboBox(self)
      self.layout().addWidget(combo)
      combo.addItems(["item1", "item2", "item3"])
      combo.activated[str].connect(self.onActivatedText)

      @QtCore.pyqtSlot(str)
      def onActivatedText(self, text):
      print(text)

      if __name__ == '__main__':
      import sys
      app = QtWidgets.QApplication(sys.argv)
      w = Widget()
      w.show()
      sys.exit(app.exec_())


      An ugly solution is:



              combo.addItems(["item1     ", "item2     ", "item3     "])









      share|improve this question
















      I have a Qcombobox, which I want to set a specific width, which is not depending on item width. I have looked around and find some tips and hints only for C++. I do not have any knowledge on that language!!



      What I get by first run:



      enter image description here



      What I want to get by first run:



      enter image description here



      from PyQt5 import QtCore, QtWidgets

      class Widget(QtWidgets.QWidget):
      def __init__(self, parent=None):
      QtWidgets.QWidget.__init__(self, parent)
      self.setLayout(QtWidgets.QVBoxLayout())
      combo = QtWidgets.QComboBox(self)
      self.layout().addWidget(combo)
      combo.addItems(["item1", "item2", "item3"])
      combo.activated[str].connect(self.onActivatedText)

      @QtCore.pyqtSlot(str)
      def onActivatedText(self, text):
      print(text)

      if __name__ == '__main__':
      import sys
      app = QtWidgets.QApplication(sys.argv)
      w = Widget()
      w.show()
      sys.exit(app.exec_())


      An ugly solution is:



              combo.addItems(["item1     ", "item2     ", "item3     "])






      python pyqt5 qcombobox






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 2 at 22:31







      Pavel.D

















      asked Jan 2 at 22:25









      Pavel.DPavel.D

      801111




      801111
























          2 Answers
          2






          active

          oldest

          votes


















          0















          minimumContentsLength : int



          This property holds the minimum number of characters that should fit into the combobox.




          from PyQt5 import QtCore, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self):
          super().__init__()

          self.setLayout(QtWidgets.QVBoxLayout())

          combo = QtWidgets.QComboBox()

          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.activated[str].connect(self.onActivatedText)

          combo.setMinimumContentsLength(30) # +++

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)

          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          enter image description here






          share|improve this answer
























          • Thanks, it works with length of content

            – Pavel.D
            Jan 2 at 23:54



















          1














          You must set a minimum width appropriate to the QComboBox:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self, parent=None):
          QtWidgets.QWidget.__init__(self, parent)
          self.setLayout(QtWidgets.QVBoxLayout())
          combo = QtWidgets.QComboBox()
          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.setMinimumWidth(100)
          combo.activated[str].connect(self.onActivatedText)

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)


          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          Before:



          enter image description here



          After:



          enter image description here






          share|improve this answer
























          • Thanks, it works and is more preferable.

            – Pavel.D
            Jan 2 at 23:55












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54013969%2fexpanding-width-of-combobox%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0















          minimumContentsLength : int



          This property holds the minimum number of characters that should fit into the combobox.




          from PyQt5 import QtCore, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self):
          super().__init__()

          self.setLayout(QtWidgets.QVBoxLayout())

          combo = QtWidgets.QComboBox()

          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.activated[str].connect(self.onActivatedText)

          combo.setMinimumContentsLength(30) # +++

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)

          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          enter image description here






          share|improve this answer
























          • Thanks, it works with length of content

            – Pavel.D
            Jan 2 at 23:54
















          0















          minimumContentsLength : int



          This property holds the minimum number of characters that should fit into the combobox.




          from PyQt5 import QtCore, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self):
          super().__init__()

          self.setLayout(QtWidgets.QVBoxLayout())

          combo = QtWidgets.QComboBox()

          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.activated[str].connect(self.onActivatedText)

          combo.setMinimumContentsLength(30) # +++

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)

          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          enter image description here






          share|improve this answer
























          • Thanks, it works with length of content

            – Pavel.D
            Jan 2 at 23:54














          0












          0








          0








          minimumContentsLength : int



          This property holds the minimum number of characters that should fit into the combobox.




          from PyQt5 import QtCore, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self):
          super().__init__()

          self.setLayout(QtWidgets.QVBoxLayout())

          combo = QtWidgets.QComboBox()

          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.activated[str].connect(self.onActivatedText)

          combo.setMinimumContentsLength(30) # +++

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)

          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          enter image description here






          share|improve this answer














          minimumContentsLength : int



          This property holds the minimum number of characters that should fit into the combobox.




          from PyQt5 import QtCore, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self):
          super().__init__()

          self.setLayout(QtWidgets.QVBoxLayout())

          combo = QtWidgets.QComboBox()

          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.activated[str].connect(self.onActivatedText)

          combo.setMinimumContentsLength(30) # +++

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)

          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 2 at 23:16









          S. NickS. Nick

          3,900268




          3,900268













          • Thanks, it works with length of content

            – Pavel.D
            Jan 2 at 23:54



















          • Thanks, it works with length of content

            – Pavel.D
            Jan 2 at 23:54

















          Thanks, it works with length of content

          – Pavel.D
          Jan 2 at 23:54





          Thanks, it works with length of content

          – Pavel.D
          Jan 2 at 23:54













          1














          You must set a minimum width appropriate to the QComboBox:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self, parent=None):
          QtWidgets.QWidget.__init__(self, parent)
          self.setLayout(QtWidgets.QVBoxLayout())
          combo = QtWidgets.QComboBox()
          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.setMinimumWidth(100)
          combo.activated[str].connect(self.onActivatedText)

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)


          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          Before:



          enter image description here



          After:



          enter image description here






          share|improve this answer
























          • Thanks, it works and is more preferable.

            – Pavel.D
            Jan 2 at 23:55
















          1














          You must set a minimum width appropriate to the QComboBox:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self, parent=None):
          QtWidgets.QWidget.__init__(self, parent)
          self.setLayout(QtWidgets.QVBoxLayout())
          combo = QtWidgets.QComboBox()
          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.setMinimumWidth(100)
          combo.activated[str].connect(self.onActivatedText)

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)


          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          Before:



          enter image description here



          After:



          enter image description here






          share|improve this answer
























          • Thanks, it works and is more preferable.

            – Pavel.D
            Jan 2 at 23:55














          1












          1








          1







          You must set a minimum width appropriate to the QComboBox:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self, parent=None):
          QtWidgets.QWidget.__init__(self, parent)
          self.setLayout(QtWidgets.QVBoxLayout())
          combo = QtWidgets.QComboBox()
          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.setMinimumWidth(100)
          combo.activated[str].connect(self.onActivatedText)

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)


          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          Before:



          enter image description here



          After:



          enter image description here






          share|improve this answer













          You must set a minimum width appropriate to the QComboBox:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Widget(QtWidgets.QWidget):
          def __init__(self, parent=None):
          QtWidgets.QWidget.__init__(self, parent)
          self.setLayout(QtWidgets.QVBoxLayout())
          combo = QtWidgets.QComboBox()
          self.layout().addWidget(combo)
          combo.addItems(["item1", "item2", "item3"])
          combo.setMinimumWidth(100)
          combo.activated[str].connect(self.onActivatedText)

          @QtCore.pyqtSlot(str)
          def onActivatedText(self, text):
          print(text)


          if __name__ == '__main__':
          import sys
          app = QtWidgets.QApplication(sys.argv)
          w = Widget()
          w.show()
          sys.exit(app.exec_())


          Before:



          enter image description here



          After:



          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 2 at 23:16









          eyllanesceyllanesc

          85.6k103564




          85.6k103564













          • Thanks, it works and is more preferable.

            – Pavel.D
            Jan 2 at 23:55



















          • Thanks, it works and is more preferable.

            – Pavel.D
            Jan 2 at 23:55

















          Thanks, it works and is more preferable.

          – Pavel.D
          Jan 2 at 23:55





          Thanks, it works and is more preferable.

          – Pavel.D
          Jan 2 at 23:55


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54013969%2fexpanding-width-of-combobox%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

          Npm cannot find a required file even through it is in the searched directory