2013-05-30 3 views
1

У меня есть этот QGridLayout:Расширение только один столбец в QGridLayout

enter image description here

и когда у меня есть значение имени файла и исходного имени, которое я хочу, чтобы добавить их в label1 и label2 расширяется только второй столбец достаточно, чтобы прочитать всю строку.

какой-нибудь совет для этого в простой форме?

+0

Вы можете установить фиксированную ширину для наклеек на левый. Будет ли это работать? – thuga

+0

проблема в том, что я не знаю априори размер строки, которую я установил (это зависит от файла, выбранного из пользователя). Я могу рассчитать количество символов и вычислить новое, но это зависит от шрифта (и я планирую его изменить). Нет ли автоматического способа сказать: «Hei label, получить фиксированное значение для отображения всей строки»? – nkint

+0

Возможно, я неправильно понял ваш вопрос. Я думал, что ваша проблема в том, что оба столбца были изменены, когда вы добавили имя файла во второй столбец. Теперь кажется, что вы хотите расширить второй столбец до определенного размера, чтобы быть достаточно широким, чтобы показать его содержимое. Я прав? – thuga

ответ

1

Вы можете сделать это через QSizePolicy класс. Используйте метод QLabel setSizePolicy() для установки горизонтального и вертикального поведения. В вашем случае вам нужно установить горизонтальную политику QLabels в первом столбце на QSizePolicy::Maximum, поэтому для этого потребуется только пространство, необходимое для себя; и если вы хотите label1 и label2 расширяться и принимать все доступное пространство, используйте QSizePolicy::Expanding

Docs - http://qt-project.org/doc/qt-4.8/qsizepolicy.html#Policy-enum

Кроме того, рассмотреть вопрос о добавлении натяжки колонн - http://qt-project.org/doc/qt-4.8/qgridlayout.html#setColumnStretch

+0

Я только что нашел, что я могу это сделать и из инструмента Qt Designer, хорошо! – nkint

Смежные вопросы