[РЕШЕНО] QLineEdit "убивает" виджет |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] 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 |
Реализуй у PaintArea1 функции из серии sizeHint (их три штуки). При размещении его в компоновке задай ему политику изменения размеров expanded. sizeHint'ы уже были реализованы а вот политика как раз и нужна была, спасибо огромное! greh, вот это прочитай: Пользовательские виджеты в компоновщиках Полезная инфа, спасибо. |
|
|
Текстовая версия | Сейчас: 27.12.2024, 8:00 |