Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: StatuS74 от Май 04, 2011, 06:30



Название: подключение формы к проекту
Отправлено: StatuS74 от Май 04, 2011, 06:30
Доброго время суток. подскажите пожалуйста. пытаюсь подключить форму к проекту но ни чего не выходит.пишу под Windows. вот пытаюсь подключить форму к проекту но при создания события по нажатию кнопки на этой форме. пишет "не удалось определить метод"   
Код
C++ (Qt)
#include <QWidget>
 
#include "QPushButton"
 
namespace Ui {
   class connect_adaptera;
}
 
class connect_adaptera: public QWidget
{
 
public:
   connect_adaptera(QWidget *parent = 0);
   ~connect_adaptera();
private:
   Ui::connect_adaptera *m_ui;
};
 
//cpp-file
Код
C++ (Qt)
#include "ui_connect_adaptera.h"
 
connect_adaptera::connect_adaptera(QWidget *parent)
   :QWidget(parent), m_ui(new Ui::connect_adaptera())
{
   m_ui->setupUi(this);
}
 
connect_adaptera::~connect_adaptera()
{
   delete m_ui;
   m_ui = 0;
}
}


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 04, 2011, 07:45
что ни кто не знает ??? ???


Название: Re: подключение формы к проекту
Отправлено: alexman от Май 04, 2011, 08:23
Примеры посмотри! Например, в директории 'qtdir\examples\animation\easing\'.


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 04, 2011, 08:28
а это где находится я не совсем понял. ???


Название: Re: подключение формы к проекту
Отправлено: Пантер от Май 04, 2011, 09:10
В каталоге, куда ты Qt установил.


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 06:05
а код который я указал в первом посту полностью надо писать в .срр файле ?


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 06:16
а по дохочевей объяснить на примере помогите. а то я только начал изучать и немного проблемно в восприятии этого языка.


Название: Re: подключение формы к проекту
Отправлено: Mikhail от Май 05, 2011, 07:07
Для начала надо почитать, например,
Название: Qt 4: Программирование GUI на С++ Изд. 2-е
Автор: Жасмин Бланшет, Марк Саммерфилд
Издательство: Кудиц-Пресс
Год: 2008
Страниц: 736
Формат: djvu
Размер: 12,0M
ISBN: 978-5-91136-059-7
Качество: хорошее,600dpi,OCR,оглавление
+ примеры!!! (Весит около 12.5Мб).

Скачать можно здесь: http://narod.ru/disk/14689109000/From_OS2.zip.html


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 07:12
я читаю и так эту книгу. но ответа так и не нашол на этот вопрос как подключить форму и как потом вызвать её по нажатию кнопки


Название: Re: подключение формы к проекту
Отправлено: alexman от Май 05, 2011, 08:27
И из примера ничего непонятно ???


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 08:32
такой вопрос. я создал форму в QT disinger он создал фаил connect_adapter.h и я создал фаил connect_adapter.cpp при создании кнопки (перейти к слоту) он переходит в срр  фаил и создает там слот хотя по книгам слоты должны создаться в файле который создал дизайнер connect_adaptera.h. подскажите в чем трабл


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 08:33
да я не совсем понял как там происходит подключение. точнее что то понятно стало но не все.


Название: Re: подключение формы к проекту
Отправлено: Mikhail от Май 05, 2011, 09:15
Ну вообще то дизайнер создает файл *.ui

если идет разговор о том, что дизайнер создает файл *.h то скорее всего это третья версия qt. или вы читаете не ту книгу.

Скорее всего у вас книга по qt 3


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 05, 2011, 15:04
извиняюсь я ошибся. да *.ui так вопрос остается активным. читаю книгу по QT но не нашел ответа. подскажите кто знает что в каком файле писать надо ???


Название: Re: подключение формы к проекту
Отправлено: Mikhail от Май 05, 2011, 19:29
Посмотри Assitant в части Qt Designer manual
подраздел Calculator for example - там все расписано.
Файлы примера в каталоге QTDIR\examples\designer\calculatorform

Успехов, там все по полочкам


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 06, 2011, 03:54
спасибо. более менее понятно стало. что то мне QT не легко дается,хотя на C#.net программировал до этого.


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 06, 2011, 09:49
написал данный код в файле *.h теперь форма связана с проектом. при сборка все ОК. а вот когда скомпилировать хочу то начинает ругаeтся на  Ui::connect_adaptera, говорит:invalid use incomplete type 'struct Ui::connect_adaptera' и  forward declaration of  'struct Ui::connect_adaptera'
Код:
#ifndef CONNECT_ADAPTERAPN1444_H
#define CONNECT_ADAPTERAPN1444_H

#include <QWidget>
#include "ui_connect_adaptera.h"
namespace Ui {
    class connect_adaptera;
}
class connect_adaptera: public QWidget, public Ui::connect_adaptera
{
Q_OBJECT
public:
connect_adaptera(QWidget* parent = 0);
~connect_adaptera();

public:
    Ui::connect_adaptera *ui_m;

private slots:
    void on_pushButton_clicked();
};

QT_END_NAMESPACE
#endif // CONNECT_ADAPTERAPN1444_H


Название: Re: подключение формы к проекту
Отправлено: alexman от Май 06, 2011, 09:50
В примерах все есть :o Может стоит на C# остаться ;)


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 06, 2011, 09:56
нет ) начальник заставил писать программу для него на QT. меня то собственно особо ни то не спрашивал. так в чем трабла у меня ???


Название: Re: подключение формы к проекту
Отправлено: alexman от Май 06, 2011, 11:17
1. Это
Код:
namespace Ui {
    class connect_adaptera;
}
убери.

2. Зачем вы и наследуетесь от Ui::connect_adaptera и храните как поле Ui::connect_adaptera *ui_m;? Что то одно делай!


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 06, 2011, 11:23
то есть как я понял вот так
Код:
#ifndef CONNECT_ADAPTERAPN1444_H
#define CONNECT_ADAPTERAPN1444_H
#include <QWidget>
#include "ui_connect_adaptera.h"
/*namespace Ui {
    class connect_adaptera;
}*/
class connect_adaptera: public QWidget,public Ui::connect_adaptera
{
Q_OBJECT
public:
connect_adaptera(QWidget* parent = 0);
~connect_adaptera();

public:
   connect_adaptera *ui_m;

private slots:
    void on_pushButton_clicked();
};
#endif // CONNECT_ADAPTERAPN1444_H


Название: Re: подключение формы к проекту
Отправлено: Пантер от Май 06, 2011, 11:29
connect_adaptera *ui_m; тоже в данном случае не нужно. Или же верни все назад и убери ,public Ui::connect_adaptera.


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 06, 2011, 11:37
по твоему варианту он говирит что трабла со "{". вот пытаюсь понять почему. начальник говарит вообще данный фаил генерируется в  QT Disinger'е.пробывал сделать  через него но там какойто вообще не тот фаил получается


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 10, 2011, 06:10
доброе время суток.подключил я к проекту форму. теперь другой вопрос как вызвать эту форму по нажатию на pushbutton.
написал следующее:
Код:
 connect_adaptera   forma2 ;
 forma2.show();

форма просто как бы запускается и тут же исчезает. подскажите как это сделать


Название: Re: подключение формы к проекту
Отправлено: Авварон от Май 10, 2011, 07:33
Ты создаешь объект на стеке и при выходе из фукнции он разрушается


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 10, 2011, 07:43
а как это сделать ? то что разрушается я это уже понял


Название: Re: подключение формы к проекту
Отправлено: StatuS74 от Май 10, 2011, 08:36
разобрался сам.
Код:
connect_adaptera * forma2 = new connect_adaptera();
  forma2->show();