Динамическое размещение элементов формы., изменение размеров формы при удалении элемента |
Здравствуйте, гость ( Вход | Регистрация )
Динамическое размещение элементов формы., изменение размеров формы при удалении элемента |
fe120 |
30.1.2010, 13:12
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0 |
Доброго времени суток.
На своем этапе развития экспериментирую с созданием и уничтожением элементов на форме. Не использую qt designer. В качестве руководства используется Макс Шлее - QT Профессиональное программирование на C++, и соответственно принципы создания элементов описанных в этой книге. Так вот к сути: Есть функция создания слоя и помещения слоя в QGroupBox Раскрывающийся текст
сигнал (showAnyInform,SIGNAL(toggled(bool)) связан со следующей функцией: Раскрывающийся текст
Итогом всего этого является следующее: Игрался с resize(int,int), с showRecordBox->adjustSize(), showRecordBox->sizeHint(), безрезультатно, форма не принимает исходных размеров. В чем ошибка и как наиболее правильнее будет реализовать подобное. Заранее спасибо. |
|
|
Litkevich Yuriy |
30.1.2010, 14:12
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Самое простое решение:
вызывай adjustSize() самого окна, для регулировки размера |
|
|
MoPDoBoPoT |
30.1.2010, 14:45
Сообщение
#3
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Не в тему:
1. anyInformation->~QTextEdit(); Не вызывай напрямую деструктор, он не освобождает память. Для этого есть delete (он вызывает деструктор и освобождает память). 2. В твоем случае нет необходимости постоянно создавать/удалять QTextEdit. Пользуйся методами show()/hide(). |
|
|
fe120 |
31.1.2010, 0:21
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0 |
Ох. 2 ответа и оба в точку. Премного благодарен.
А вообще создания формы чисто средствами кодинга, без drag and drop'ывания элементов, это моветоном еще не считается? Или так сказать будующее за qt designer и qml? |
|
|
Litkevich Yuriy |
31.1.2010, 0:42
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А вообще создания формы чисто средствами кодинга, без drag and drop'ывания элементов, это моветоном еще не считается? в доке по Qt сказано, что компоновщики были придуманы для облегчения создания графического интерфейса именно в кодеИли так сказать будующее за qt designer и qml? поживём увидим, пока QML очень сырой
|
|
|
SABROG |
31.1.2010, 16:02
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
qt designer и qml? У них совершенно разное направление. QML никогда не заменит обычные создание приложений на виджетах. Это как сравнить Style Sheets с QPainter'ом. Если без стилей можно обойтись, то без QPainter'a нет. То, что ты не можешь сделать с помощью стилей ты можешь реализовать сам. QML это скрипт, который позволяет манипулировать базовыми элементами сцены используя её функционал без необходимости писать всё на С++ через методы и классы. Если подумать, то QML мог бы быть как .ui файлы, в виде xml'я, а для него был бы аналогичный компилятор типа uic, который бы превращал xml в С++ код с классами для QGraphicsView. Вместо яваскрипа были бы сигналы, которые бы связывались со слотами на C++. Но смысл то ведь в том, что это декларативный подход - глаза не видят, а руки делают. Презентации наверно удобно было бы делать. Работать с мультимедией. Короче это всё-равно что выбрать игровой 3D движок для создания бухгалтерской программы, где тебе нужно зачистить деревню повстанцев, а в конце миссии тебе отдадут годовой отчет. Кстати этот подход мне ужасно не нравится в Mass Effect 2. Там есть космический корабль, капитаном которого ты являешься, так вот, чтобы изучить какой-то апгрейд или просто рубашку сменить нужно пробежать пол корабля в свою кабину или другой отсек, на лифте туда сюда поездить. Очень раздражает, что нет единого меню откуда можно было бы всё сделать без необходимости пол минуты ждать пока загрузится палуба на которую ты приехал, чтобы посмотреть свои achievements. Вот и QML такой же, пол жизни тратишь на просмотр анимации растворения, перемещения, вместо того, чтобы получить моментальный результат. |
|
|
Текстовая версия | Сейчас: 13.12.2024, 14:53 |