Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: romanoff346 от Январь 18, 2012, 14:40



Название: Странное поведение формы
Отправлено: romanoff346 от Январь 18, 2012, 14:40
Написал простое приложение, оно только открывает форму, но при компиляции выдаёт следующее:
 "Attempting to add QLayout "" to FromCurveWindow "FromCurve", which already has a layout"
Вроде бы просто, но включёна компоновка по сетке 1 раз, то-есть повторно я её не вызывал.
 В результате получаю вот такое окно:
(http://img-fotki.yandex.ru/get/2712/28065999.1/0_62923_3c507fda_L.jpg).

Что с этим безобразием можно сделать?


Название: Re: Странное поведение формы
Отправлено: Mikhail от Январь 18, 2012, 14:45
Что за FromCurveWindow.

По сообщению у него уже есть менеджер компановки.
Это случайно не QMainWindow?


Название: Re: Странное поведение формы
Отправлено: popper от Январь 18, 2012, 14:46
А почему в дизайнере не виден комбоБокс?
Вместо компоновки по сетке сделай три вертикальных компоновки, а компоновку формы сделай по горизонтали


Название: Re: Странное поведение формы
Отправлено: Igore от Январь 18, 2012, 14:47
Покажи код добавления элемента, сама форма судя по скриншоту нормальная, дальше ты у нее пытаешься заменить Layout который уже установлен, и добавить элемент.


Название: Re: Странное поведение формы
Отправлено: romanoff346 от Январь 18, 2012, 15:19
Это QWidget.
В том-то и проблема, что когда я использую менеджер он любой объект, который находится справа в самой нижней позиции дублирует в верхнем левом углу.

Из программы я уже ничего добавить не пытаюсь...А Qt считает, что пытаюсь....
 
Попробовал с вертикальной и горизонтальной компоновкой,- та же хрень получается....

FromCurveWindow.h

#ifndef FROMCURVEWINDOW_H
#define FROMCURVEWINDOW_H
#include <QDialog>
#include "ui_FromCurve.h"

class FromCurveWindow : public QDialog, public Ui::FromCurve
{
    Q_OBJECT
public:
    FromCurveWindow(QWidget *parent = 0);

};


#endif // FROMCURVEWINDOW_H

FromCurveWindow.cpp

#include <QtGui>
#include "FromCurveWindow.h"
FromCurveWindow::FromCurveWindow(QWidget *parent)
    :QDialog(parent)
{
    setupUi(this);

}



#include <QApplication>
#include <QDialog>
#include "FromCurveWindow.h"


main.cpp:
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Ui::FromCurve ui;
    FromCurveWindow *dialog = new FromCurveWindow;
    ui.setupUi(dialog);
    dialog->show();
    return app.exec();
}

ну и собсно сам уи:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>FromCurve</class>
 <widget class="QWidget" name="FromCurve">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>521</width>
    <height>413</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QGridLayout" name="gridLayout">
   <item row="0" column="0">
    <widget class="QPushButton" name="pushButton">
     <property name="text">
      <string>1</string>
     </property>
    </widget>
   </item>
   <item row="0" column="2">
    <widget class="QComboBox" name="comboBox">
     <item>
      <property name="text">
       <string>1</string>
      </property>
     </item>
     <item>
      <property name="text">
       <string>2</string>
      </property>
     </item>
     <item>
      <property name="text">
       <string>3</string>
      </property>
     </item>
    </widget>
   </item>
   <item row="1" column="0" rowspan="2">
    <spacer name="verticalSpacer">
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>305</height>
      </size>
     </property>
    </spacer>
   </item>
   <item row="1" column="1" rowspan="2">
    <widget class="QLabel" name="label">
     <property name="text">
      <string>TextLabel</string>
     </property>
    </widget>
   </item>
   <item row="2" column="2">
    <spacer name="verticalSpacer_2">
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>299</height>
      </size>
     </property>
    </spacer>
   </item>
   <item row="3" column="0">
    <widget class="QPushButton" name="pushButton_3">
     <property name="text">
      <string>2</string>
     </property>
    </widget>
   </item>
   <item row="4" column="0">
    <widget class="QPushButton" name="pushButton_2">
     <property name="text">
      <string>3</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>


Название: Re: Странное поведение формы
Отправлено: Hellraiser от Январь 18, 2012, 15:29
А зачем 2 раза setupUi - в конструкторе диалога и в мэйне? Убери из мэйна.


Название: Re: Странное поведение формы
Отправлено: romanoff346 от Январь 18, 2012, 15:40
Да, в этом и была проблема, убрал, спасибо!!!