crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QWizard, Запускает но не видно ни одного виджета ;(
edwardoid
  опции профиля:
сообщение 1.1.2009, 23:44
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Нарисовал QWizard, Qt Creator создал КОРРЕКТНЫЙ /.h файл, но когда создаю пременнутю типа моего класса Визарда скотина не показывает мои Виджеты. почему?
#ifndef CREATEPROJECT_H
#define CREATEPROJECT_H

#include <QtGui/QWizard>
#include <QPushButton>
namespace Ui {
    class CreateProject;
}

class CreateProject : public QWizard {
    Q_OBJECT
    Q_DISABLE_COPY(CreateProject)
public:
    explicit CreateProject(QWidget *parent = 0);
    virtual ~CreateProject();

protected:
    virtual void changeEvent(QEvent *e);
private:
    Ui::CreateProject *m_ui;
};

#endif // CREATEPROJECT_H

#include "createproject.h"
#include "ui_createproject.h"

CreateProject::CreateProject(QWidget *parent) :
    QWizard(parent),
    m_ui(new Ui::CreateProject)
{
    m_ui->setupUi(this);
}

CreateProject::~CreateProject()
{
    delete m_ui;
}

void CreateProject::changeEvent(QEvent *e)
{
    switch (e->type()) {
    case QEvent::LanguageChange:
        m_ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

Объект создаю так:
CreateProject create;
    create.exec();

Результат:

Хотя должено быть:

Причем заметьте что почему-то он даже вернюю панель с кнопками "?" и "X" не отображает. Почему? Я никак не пойму.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.1.2009, 1:06
Сообщение #2


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

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

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




Репутация:   94  


edwardoid, а для чего ты так делаешь:
Цитата(edwardoid @ 2.1.2009, 2:44) *
namespace Ui {
class CreateProject;
}
?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
edwardoid
  опции профиля:
сообщение 2.1.2009, 1:08
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 2.1.2009, 2:06) *
edwardoid, а для чего ты так делаешь:
Цитата(edwardoid @ 2.1.2009, 2:44) *
namespace Ui {
class CreateProject;
}
?

А это не я, это Qt Creator сгенерировал я и не тронул.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.1.2009, 1:30
Сообщение #4


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

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

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




Репутация:   94  


странно это всё. Имена одинаковые (CreateProject) яб посмотрел например %QTDIR%\examples\dialogs\licensewizard и на его основе сделал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
edwardoid
  опции профиля:
сообщение 2.1.2009, 2:41
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Все самому ручками писать в один класс и потом дополнять тем что мне надо получиться слишком много и запутанно. Если писать класс с интерфейсом а потом его наследовать получиться та же каша. У вас этот код компилится и показывает как надо?

Сообщение отредактировал edwardoid - 2.1.2009, 2:43
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
edwardoid
  опции профиля:
сообщение 2.1.2009, 4:02
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Даже такой вариант не работает. Открывает визард с двумя чистыми страницами. :-\
createproject.h
#ifndef CREATEPROJECT_H
#define CREATEPROJECT_H

#include <QWizard>
#include <QPushButton>
class Step1;

class CreateProject : public QWizard
{
public:
    CreateProject(QWidget* parent);
    ~CreateProject();
private:
    Step1 *first;
    Step1 *second;
};

class Step1: public QWizardPage
{
   public:
    Step1(QWidget* parent);
    ~Step1();
   private:
    QPushButton *bt;
};

#endif // CREATEPROJECT_H

createproject.cpp
#include "createproject.h"

CreateProject::CreateProject(QWidget* parent): QWizard(parent)
{
    first = new Step1(this);
    second = new Step1(this);
    this->addPage(first);
    this->addPage(second);
}

CreateProject::~CreateProject()
{
    delete first;
    delete second;
}

Step1::Step1(QWidget *parent): QWizardPage(parent)
{
    bt = new QPushButton(this);
    bt->show();
}

Step1::~Step1()
{
    delete bt;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.1.2025, 8:39