2012-06-08 3 views
0

Я использую QGridLayout и определяю layout как файл ui.Размещение Widgets в QGridLayout

Мне нужно реализовать такую ​​схему:

| Колонок 0 | Колонок 1 | Колонок 2 | Колонок 3 |

| ширина достаточно, чтобы соответствовать тексту | пустое пространство | Редактирование строки с шириной 66-70 | ширина достаточно, чтобы соответствовать тексту |

Моя проблема столбцы 1 и 2.

Какую политику размера я должен использовать, чтобы дать все свободное пространство в колонке 1?

Я пытаюсь установить ширину мин = 66 и максимальную ширину = 70 в колонку 2. И «Расширение» ширина политики в колонку 1.

Но по какой-то причине, в этом случае колонке 1 расширяется больше нагадил он должен быть, а столбец 2 имеет значение менее 66.

Если я установил политику размера для столбца 1 как «максимум», все пространство указывается в столбце 2. И ширина этого столбца больше, чем виджет редактирования строки, так что это не правильно выровнено.

ответ

1

Вы делаете все правильно, за исключением единиц.

Я предполагаю, что ширина вашей строки изменяется в символах, но похоже, что вы используете это число для установки ширины, заданной в пикселях.

я установил бы это следующим образом:

qreal em = QFontMetricsF(ui.lineEdit->font()).width('m'); 
ui.lineEdit->setMinimumWidth(round(em*66)); 
ui.lineEdit->setMaximumWidth(round(em*70)); 
Смежные вопросы