crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> как сделать 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 килобайт ) Кол-во скачиваний: 217

все создается в конструкторе, в 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
Прикрепленные файлы
Прикрепленный файл  pad.tar ( 10 килобайт ) Кол-во скачиваний: 148
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Цитата(deex @ 10.1.2010, 8:50) *
не понял только, зачем topWidg->setMinimumHeight(100);
потому что над и под текстовым полем получается ненужная пустота
А зачем ты выше и ниже текстэдита по QWidget-у расположил?
Я предположил что на их месте появятся какие то другие виджеты. Если они тебе не нужны, удали все строки с ними связанные.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 14:08