динамические диалоговые окна, как использовать? |
Здравствуйте, гость ( Вход | Регистрация )
динамические диалоговые окна, как использовать? |
zamnach |
18.7.2008, 15:26
Сообщение
#1
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
хелло!
пытаюсь динамически загружать форму (*.ui) в приложение по книге Бланшет "Qt4..." код примерно такой: //-----------hello.h
//-----------hello.cpp
компилятор 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
|
|
|
zamnach |
22.7.2008, 13:25
Сообщение
#2
|
Студент Группа: Участник Сообщений: 36 Регистрация: 18.7.2008 Пользователь №: 239 Спасибо сказали: 0 раз(а) Репутация: 0 |
заработало! спасибо за ссылки
снес все Qt (demo и evaluate) утановил тока evaluate добавил нужные либы в проект VC и вуаля код загрузки ui CODE void Hello_Qt::OpenForm() { QUiLoader uiLoader; QString str=QFileDialog::getOpenFileName(this,"Open Form","", "*.ui"); if(str!="") { QFile file(str); file.open(QFile::ReadOnly); form = uiLoader.load(&file); file.close(); if(form) form->show(); } } Не затруднит ли Вас, коллеги, ответить на след. вопросы: 1. почему VC не создает exe файлы, хотя программы из под компилера запускаются 2. как делать exe файлы? через бесплатный компилер типа minGW? 3. в проекте VC подправил форму, а приложении все равно запускается старая форма. почему? заранее благодарю. |
|
|
Текстовая версия | Сейчас: 26.11.2024, 15:36 |