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.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.11.2009, 9:55
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


greh, вот это прочитай: Пользовательские виджеты в компоновщиках
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
greh
  опции профиля:
сообщение 25.11.2009, 15:02
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(Kagami @ 25.11.2009, 10:52) *
Реализуй у PaintArea1 функции из серии sizeHint (их три штуки). При размещении его в компоновке задай ему политику изменения размеров expanded.


sizeHint'ы уже были реализованы а вот политика как раз и нужна была, спасибо огромное!


Цитата(Litkevich Yuriy @ 25.11.2009, 11:55) *


Полезная инфа, спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 23:29