crossplatform.ru

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

> динамические диалоговые окна, как использовать?
zamnach
  опции профиля:
сообщение 18.7.2008, 15:26
Сообщение #1


Студент
*

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

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




Репутация:   0  


хелло!
пытаюсь динамически загружать форму (*.ui) в приложение по книге Бланшет "Qt4..."
код примерно такой:
//-----------hello.h
#include <QtGui/QMainWindow>
#include <QtUiTools>
#include <QUiLoader>
#include <QWidget>
#include <QFileDialog>
#include "ui_hello_qt.h"


//-----------hello.cpp
void Hello_Qt::OpenForm()
{
        QUiLoader uiLoader;
        QFileDialog dlg;
    
        QString str=QFileDialog::getOpenFileName(this,"Open Form","", "*.ui");
        if(str!="")
        {
                QFile file(str);
                file.open(QFile::ReadOnly);
                form = uiLoader.load(&file,this);
                file.close();
        }
}//openform


компилятор msvs2005 Team Suite ругается примерно такими словами:
1>hello_qt.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall QUiLoader::~QUiLoader(void)" (??1QUiLoader@@UAE@XZ) referenced in function "private: void __thiscall Hello_Qt::OpenForm(void)" (?OpenForm@Hello_Qt@@AAEXXZ)
1>hello_qt.obj : error LNK2019: unresolved external symbol "public: class QWidget * __thiscall QUiLoader::load(class QIODevice *,class QWidget *)" (?load@QUiLoader@@QAEPAVQWidget@@PAVQIODevice@@PAV2@@Z) referenced in function "private: void __thiscall Hello_Qt::OpenForm(void)" (?OpenForm@Hello_Qt@@AAEXXZ)
1>hello_qt.obj : error LNK2019: unresolved external symbol "public: __thiscall QUiLoader::QUiLoader(class QObject *)" (??0QUiLoader@@QAE@PAVQObject@@@Z) referenced in function "private: void __thiscall Hello_Qt::OpenForm(void)" (?OpenForm@Hello_Qt@@AAEXXZ)
1> <путь>\Hello_Qt.exe : fatal error LNK1120: 3 unresolved externals
//=================================

без кода, связанного с QUiLoader приложение запускается, по нажатию кнопки диалог открывается.
почему компилятор не находит деструктор QUiLoader?
таки как подгружать динамически форму?
Спасибо
Причина редактирования: для кода используем тэг code=cpp
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 18.7.2008, 15:34
Сообщение #2


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

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

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




Репутация:   94  


а в файл проекта (*.pro) не забыл подключить ничего?
типа:
FORMS = my.ui
(см. пример из твоей книги)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zamnach
  опции профиля:
сообщение 18.7.2008, 15:50
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.7.2008, 16:34) *
а в файл проекта (*.pro) не забыл подключить ничего?
типа:
FORMS = my.ui
(см. пример из твоей книги)


ручками (qmake) сделал файл *.pro, добавил туда строку
CONFIG += uitools
(как в книге..., до вопроса на форуме;) )

только я не знаю как прикрутить этот файл к solution MSVS
+ ко всему, я на этапе компиляции не знаю имя файла формы. я ее хочу выбирать, загружать в приложение и работать с контролами выбранной формы.
это реализуемо в рамках Qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 30.11.2024, 1:59