как сделать qtextedit резиновым? |
Здравствуйте, гость ( Вход | Регистрация )
как сделать qtextedit резиновым? |
deex |
8.1.2010, 11:55
Сообщение
#1
|
Студент Группа: Участник Сообщений: 45 Регистрация: 12.3.2009 Пользователь №: 608 Спасибо сказали: 0 раз(а) Репутация: 0 |
сделал текстовое поле посередине главного окна
editArea = new QTextEdit; editArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); если растягивать окно - он тоже растягивается, но только по горизонтали. как сделать чтобы и по вертикали тоже? |
|
|
Litkevich Yuriy |
8.1.2010, 12:47
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
deex, ты компоновщик (QLayout) используешь?
|
|
|
deex |
8.1.2010, 13:17
Сообщение
#3
|
Студент Группа: Участник Сообщений: 45 Регистрация: 12.3.2009 Пользователь №: 608 Спасибо сказали: 0 раз(а) Репутация: 0 |
да
изначально я создаю объект класса QMainWindow в его конструкторе: создаю виджет QWidget *mainWidg = new QWidget; делаю его основным (насколько я это понял) setCentralWidget(mainWidg); затем вертикальный лайаут QVBoxLayout *layout = new QVBoxLayout; помещаю в него текстовое поле layout->setMargin(2); layout->addWidget(editArea); и добавляю лайаут в виджет mainWidg->setLayout(layout); |
|
|
Litkevich Yuriy |
8.1.2010, 14:50
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вроде всё верно
|
|
|
deex |
8.1.2010, 15:49
Сообщение
#5
|
Студент Группа: Участник Сообщений: 45 Регистрация: 12.3.2009 Пользователь №: 608 Спасибо сказали: 0 раз(а) Репутация: 0 |
вот полный код, посмотрите пожалуйста
deexpad.zip ( 1,91 килобайт ) Кол-во скачиваний: 228 все создается в конструкторе, в pad.cpp Сообщение отредактировал Litkevich Yuriy - 10.1.2010, 9:36
Причина редактирования: Загрузил архив на форум
|
|
|
deex |
8.1.2010, 16:22
Сообщение
#6
|
Студент Группа: Участник Сообщений: 45 Регистрация: 12.3.2009 Пользователь №: 608 Спасибо сказали: 0 раз(а) Репутация: 0 |
а, я же забыл показать самое главное
editArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); вот тут для QTextEdit задается растягивание, которое я ещё плохо понимаю |
|
|
igor_bogomolov |
8.1.2010, 17:47
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Подправил немного.
add: И замени в main.cpp #include "pad.cpp" на #include "pad.h" Сообщение отредактировал igor_bogomolov - 8.1.2010, 17:55
Прикрепленные файлы
|
|
|
deex |
10.1.2010, 8:50
Сообщение
#8
|
Студент Группа: Участник Сообщений: 45 Регистрация: 12.3.2009 Пользователь №: 608 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата И замени в main.cpp #include "pad.cpp" на #include "pad.h" вот это и в примерах не понимал - если я буду инклудить pad.h, то как в проект попадет pad.cpp? т.к. он тоже сейчас инклудит pad.h, но pad.h не инклудит его. и в примерах также - main.cpp инклудит .h, класс.cpp инклудит .h, а сам .h не инклудит ничего проверил, спасибо то что надо не понял только, зачем topWidg->setMinimumHeight(100); потому что над и под текстовым полем получается ненужная пустота |
|
|
Litkevich Yuriy |
10.1.2010, 9:32
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
deex, по поводу "инклюдов", создал отдельную тему: Как правильно "инклюдить" файлы?
|
|
|
igor_bogomolov |
10.1.2010, 14:21
Сообщение
#10
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
не понял только, зачем topWidg->setMinimumHeight(100); А зачем ты выше и ниже текстэдита по QWidget-у расположил?потому что над и под текстовым полем получается ненужная пустота Я предположил что на их месте появятся какие то другие виджеты. Если они тебе не нужны, удали все строки с ними связанные. |
|
|
Текстовая версия | Сейчас: 28.12.2024, 0:21 |