Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QComboBox does not update size

QComboBox does not update size

Scheduled Pinned Locked Moved General and Desktop
4 Posts 2 Posters 3.0k 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.
  • B Offline
    B Offline
    Banshee
    wrote on last edited by
    #1

    Hello!
    I have a problem with the QComboBox. I use two Combo Boxes with different content in a Dialog. Below every Box, there is a "show all" checkbox, to show more content.
    I fill the ComboBox with items and if I exec(), everything is fine (i.e. the ComboBox has the right size).
    The problem occurs if i now press the "show all"-checkboxes, because the ComboBox does not change its size, even if the items are now larger.
    I tried many things (SizePolicy, updateGeometry, adjustSize etc.), ones I call exec(), the size of the ComboBox seems unchangeable :(
    Heres some of my code, if you need more, let me know:

    @matchDialog::matchDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::matchDialog)
    {
    ui->setupUi(this);

    connect(ui->buttonBox,SIGNAL(accepted()),this,SLOT(ok()));
    connect(ui->buttonBox,SIGNAL(rejected()),this,SLOT(cancel()));
    
    connect(ui->checkBoxA,SIGNAL(toggled(bool)),this,SLOT(showAllA(bool)));
    connect(ui->checkBoxV,SIGNAL(toggled(bool)),this,SLOT(showAllV(bool)));
    

    }
    void matchDialog::addDevice(QString type, QString name,int index){
    if (type == "audioDevice"){
    audio << QPair<QString, int> (name,index);
    ui->comboBoxAudio->addItem(name,QVariant(index));
    }else{
    ui->comboBoxVideo->addItem(name,QVariant(index));
    video << QPair<QString, int> (name,index);
    }
    all << QPair <QString, int>(name,index);

    }

    void matchDialog::showAllA(bool checked){
    ui->comboBoxAudio->clear();
    if(checked)
    for(int i=0;i< all.size();i++)
    ui->comboBoxAudio->addItem(all.at(i).first,QVariant(all.at(i).second));
    else
    for(int i=0;i< audio.size();i++)
    ui->comboBoxAudio->addItem(audio.at(i).first,QVariant(audio.at(i).second));

    this->adjustSize();
    

    }
    void matchDialog::showAllV(bool checked){
    ui->comboBoxVideo->clear();
    if(checked)
    for(int i=0;i< all.size();i++)
    ui->comboBoxVideo->addItem(all.at(i).first,QVariant(all.at(i).second));
    else
    for(int i=0;i< video.size();i++)
    ui->comboBoxVideo->addItem(video.at(i).first,QVariant(video.at(i).second));

    this->adjustSize();
    

    }@

    Thank you and Greetings
    Matthias

    1 Reply Last reply
    0
    • B Offline
      B Offline
      Banshee
      wrote on last edited by
      #2

      Update & Bump:

      Things are getting weirder. Now I tried calling "this->adjustSize();" at the end of "matchDialog::showAllV" and "matchDialog::showAllA".
      The result: If i click on the "checkBoxV" AND THEN on "checkBoxA", the size is adjusted properly. If I just click "checkBoxV" muliple times WIHTOUT clicking "checkBoxA", the size is adjust the wrong way (i.e. too small for big contents, too big for small contents).

      I hope anyone can help, the problem is really annoying :(.

      1 Reply Last reply
      0
      • B Offline
        B Offline
        bodzio131
        wrote on last edited by
        #3

        I guess problem is in your layout setting. It would be usefull to see your ui file.

        1 Reply Last reply
        0
        • B Offline
          B Offline
          Banshee
          wrote on last edited by
          #4

          Thank you for your reply :)
          I don't know where the problem could be, so i post the full ui file:
          @<?xml version="1.0" encoding="UTF-8"?>
          <ui version="4.0">
          <class>matchDialog</class>
          <widget class="QDialog" name="matchDialog">
          <property name="geometry">
          <rect>
          <x>0</x>
          <y>0</y>
          <width>204</width>
          <height>125</height>
          </rect>
          </property>
          <property name="windowTitle">
          <string>Dialog</string>
          </property>
          <layout class="QVBoxLayout" name="verticalLayout">
          <item>
          <layout class="QHBoxLayout" name="horizontalLayout">
          <item>
          <widget class="QGroupBox" name="groupBoxVideo">
          <property name="title">
          <string>Video-Device</string>
          </property>
          <layout class="QVBoxLayout" name="verticalLayout_3">
          <item>
          <widget class="QComboBox" name="comboBoxVideo">
          <property name="sizePolicy">
          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
          </sizepolicy>
          </property>
          <property name="maxVisibleItems">
          <number>10</number>
          </property>
          <property name="sizeAdjustPolicy">
          <enum>QComboBox::AdjustToContents</enum>
          </property>
          </widget>
          </item>
          <item>
          <widget class="QCheckBox" name="checkBoxV">
          <property name="text">
          <string>Show All</string>
          </property>
          </widget>
          </item>
          </layout>
          </widget>
          </item>
          <item>
          <widget class="QGroupBox" name="groupBoxAudio">
          <property name="title">
          <string>Audio-Device</string>
          </property>
          <layout class="QVBoxLayout" name="verticalLayout_2">
          <item>
          <widget class="QComboBox" name="comboBoxAudio">
          <property name="sizePolicy">
          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
          </sizepolicy>
          </property>
          <property name="sizeAdjustPolicy">
          <enum>QComboBox::AdjustToContents</enum>
          </property>
          <property name="frame">
          <bool>true</bool>
          </property>
          </widget>
          </item>
          <item>
          <widget class="QCheckBox" name="checkBoxA">
          <property name="text">
          <string>Show All</string>
          </property>
          </widget>
          </item>
          </layout>
          </widget>
          </item>
          </layout>
          </item>
          <item>
          <widget class="QDialogButtonBox" name="buttonBox">
          <property name="orientation">
          <enum>Qt::Horizontal</enum>
          </property>
          <property name="standardButtons">
          <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
          </property>
          </widget>
          </item>
          </layout>
          </widget>
          <resources/>
          <connections>
          <connection>
          <sender>buttonBox</sender>
          <signal>accepted()</signal>
          <receiver>matchDialog</receiver>
          <slot>accept()</slot>
          <hints>
          <hint type="sourcelabel">
          <x>248</x>
          <y>254</y>
          </hint>
          <hint type="destinationlabel">
          <x>157</x>
          <y>274</y>
          </hint>
          </hints>
          </connection>
          <connection>
          <sender>buttonBox</sender>
          <signal>rejected()</signal>
          <receiver>matchDialog</receiver>
          <slot>reject()</slot>
          <hints>
          <hint type="sourcelabel">
          <x>316</x>
          <y>260</y>
          </hint>
          <hint type="destinationlabel">
          <x>286</x>
          <y>274</y>
          </hint>
          </hints>
          </connection>
          </connections>
          </ui>
          @

          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