у меня есть QDialog
с разметкой сетки в нем. Сетка состоит из 5 столбцов с переменным количеством строк. QDialog
начинается с готового пользовательского интерфейса, который имеет метку в каждом из 5 столбцов. Остальная часть сетки построена следующим образом. Для каждой строки добавлено:
Когда это завершено, столбец 0 является самым широким столбцом. Столбцы 1-4 имеют одинаковую ширину. Некоторые элементы комбинированного списка (столбцы 1-3) слишком широки, чтобы их можно было увидеть и показать как «…». Столбец флажка (4) шире, чем нужно. Я пытался использовать QWidget::adjustSize()
на каждом чертовом виджете, включая само диалоговое окно, и я не могу настроить его на автоматический размер, чтобы соответствовать всем. В попытке отладить его я распечатал ширину виджета для каждого столбца, но значения, которые я вижу, совсем не то, что я вижу на экране. У меня сложилось впечатление, что компоновка сетки автоматически настроит каждый виджет в каждом столбце так, чтобы он был достаточно широким, чтобы вместить самый широкий элемент, но, похоже, этого не происходит. Есть ли какая-то setAutoColumnWidth
собственность или что-то?
Если вы хотите установить ширину для столбцов макета, вы можете установить значения Stretch для виджетов внутри макета. Например, установите горизонтальные растяжки всех виджетов на 1
для равных ширин:
lineEdit->sizePolicy().setHorizontalStretch(1);
comboBox1->sizePolicy().setHorizontalStretch(1);
comboBox2->sizePolicy().setHorizontalStretch(1);
comboBox3->sizePolicy().setHorizontalStretch(1);
checkBox->sizePolicy().setHorizontalStretch(1);
Если вы хотите, чтобы определенный столбец был шире, установите более высокое значение растяжения для виджета в этом столбце.