2016-02-09 5 views
-1

У меня есть приложение qt, которое использует очень плохую технику для изменения размера. Текущий подход состоит в том, чтобы поместить все основные элементы внутри формы, а когда происходит изменение размера, измените размер и место объектов с помощью пользовательского кода. Это уродливое, трудноподдерживаемое, и оно не подходит для будущих функций.Qt Комплексная компоновка для заметок

Что нужно сделать, так это использовать инструменты qt для обработки макетов. Я пробовал и терпел неудачу. Я хотел бы помочь вам. е Вы можете взглянуть на приложение здесь: https://github.com/nuttyartist/notes

Источник есть. Кроме того, вот скриншот из формы QtCreator: http://i.imgur.com/glGn3ES.png?1

Я в порядке с созданием макета через код.

+1

Взгляните на http://doc.qt.io/qt-4.8/layout.html – dtech

ответ

0

Как уже упоминалось, ddriver, вы должны абсолютно работать с макетами. Они будут работать нормально (в большинстве случаев), если вы измените размер своего окна, а также сможете каскадировать виджеты с разными макетами.

Это может быть немного противоречиво для работы с макетами в самом начале, и вам нужно переосмыслить, как разместить свои виджеты, но это, без сомнения, очень полезно.

+0

Я знаю о макетах, но я изо всех сил стараюсь реализовать их так, чтобы мое приложение работало так, как будто оно работает сейчас. Вот что я получил: http://i.imgur.com/6pAFTB0.png Но есть несколько проблем: 1. Я хочу, чтобы виджеты были в фиксированном размере, который я решаю. Фиксированная политика не делает этого. 2. Пространство между виджетами, между виджетами и основным окном и между макетами на линии не должно быть. 3. Кнопки с макси-максимизацией с закрытием-минимумом не сидят так, как должны. они не должны находиться на одной и той же оси «y» в качестве кнопок «плюс» и «мусор», но над ними. – Notes

+1

Попробуйте различную вложенность макетов, что-то вроде этого, например http://i.stack.imgur.com/xRjA7.png – dtech

+0

1. Зачем вам нужен фиксированный размер? Это редко бывает хорошей политикой. Если вам это действительно нужно, вы должны установить минимальный размер и максимальный размер одновременно, потому что fixedSize не работает по причинам, нераскрытым для меня. 2. попробуйте setBorderSpacing и setContentsMargins; в QtDesigner вы можете установить интервал и поля для всех краев отдельно. 3. Для этого вам следует поиграть с layoutStretch ... layoutTextch сумма как левого, так и правого макета должна быть равна, а первое число, вероятно, является отношением высоты первого виджета. Если это число равно, они должны быть выровнены – IceFire

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