crossplatform.ru

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

> [РЕШЕНО] QLineEdit "убивает" виджет
greh
  опции профиля:
сообщение 24.11.2009, 20:57
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 23.11.2009
Пользователь №: 1252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Итак в двух словах о программе: Есть MainWindow на котором устновлен центральный виджет WorkSpace, в котором установлен MainLayout вот в этом этом MainLayot'e есть виджет на котором рисуются различные геометрические фигуры(он распологается слева) и RightLayout в котором есть различные виджеты( несколько Label'ов, LineEdit'ы и кнопка рисовать) и вот если оставить LineEdit'ы то виджет на котором рисуются фигуры просто исчезает О_о А если убрать LineEdit'ы то всё в порядке. Помогите пожалуйста.

mainwindow.h:
CODE
QWidget *WorkSpace;

QHBoxLayout *MainLayout;
QVBoxLayout *RightLayout1;

PaintArea *PaintArea1;

QLabel *WidthLabel;
QLabel *HeightLabel;
QLabel *XLabel;
QLabel *YLable;

QLineEdit *WidthLine;
QLineEdit *HeightLine;
QLineEdit *XLine;
QLineEdit *YLine;

QPushButton *PaintButton;


mainwindow.cpp:

CODE
void MainWindow::CreateCentralwidgets()
{
WidthLine = new QLineEdit("0");
HeightLine = new QLineEdit("0");
XLine = new QLineEdit("0");
YLine = new QLineEdit("0");

WidthLabel = new QLabel(tr("<center>Width:</center>"));
HeightLabel = new QLabel(tr("<center>Height:</center>"));
XLabel = new QLabel(tr("<center>X:</center>"));
YLable = new QLabel(tr("<center>Y:</center>"));

PaintButton = new QPushButton(tr("Paint"));
PaintButton->setEnabled(false);
}


void MainWindow::ArrangementWidgets()
{

WorkSpace = new QWidget;

MainLayout = new QHBoxLayout;
RightLayout1 = new QVBoxLayout;

RightLayout1->addWidget(WidthLabel);
//RightLayout1->addWidget(WidthLine);
RightLayout1->addWidget(HeightLabel);
//RightLayout1->addWidget(HeightLine);
RightLayout1->addWidget(XLabel);
//RightLayout1->addWidget(XLine);
RightLayout1->addWidget(YLable);
//RightLayout1->addWidget(YLine);

RightLayout1->addWidget(PaintButton);

RightLayout1->addStretch();

MainLayout->addWidget(PaintArea1);

MainLayout->addLayout(RightLayout1);

WorkSpace->setLayout(MainLayout);



Забыл сказать: если виджету PaintArea1 установить FixedSize(), то виджет видно, но мне нужно именно чтобы его размер менялся при растягивании окна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Kagami
  опции профиля:
сообщение 25.11.2009, 8:52
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Реализуй у PaintArea1 функции из серии sizeHint (их три штуки). При размещении его в компоновке задай ему политику изменения размеров expanded.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 0:16