Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытие документов MS Word на Qt

15K
22 марта 2012 года
DragonHT
38 / / 02.08.2007
Доброго времени суток.
Хотел бы задать вопрос по работе с Qt. Возможно кто-нибудь сталкивался с этой задачей. Задаю его по скольку совсем новичёк в Qt
Задача состоит в том чтобы открыть запрашиваемый Doc документ в MS Word. На данном этапе я получил список файлов из родительской директории проекта с помощью QDir, теперь необходимо по имени файла передать его открытие в ворд. На сколько я понял создание процесса MS Word реализуется следующим образом.
 
Код:
QAxObject* word = new QAxObject("Word.Application");
Вопрос состоит в том чтобы затем с помощью переменной word и имени файла организовать открытие документа в окне ms word.
Заранее спасибо за помощь!
15K
22 марта 2012 года
DragonHT
38 / / 02.08.2007
В догонку задаю вопрос ещё такой:
При попытке выполнить вышеописанную строчку получаю две ошибки компоновщика: LNK2019 и LNK1120. Со второй всё понятно, сама исчезнет если первую исправить, но вот как первую исправить искренне непонятно, ибо конструктор объекта используется ровно такой как в документации и у других людей он работает, возможно не хватает библиотеки какой-либо, или параметра запуска компоновщика, если так то каких и где их в Qt Creator можно прописать?

[fixed] в *.pro файл дописать
 
Код:
CONFIG  +=qaxcontainer
316
22 марта 2012 года
Alm3n
889 / / 29.05.2009
 
Код:
QString program = "C:/Program Files/Notepad++/notepad++.exe";
        QStringList arguments;
        arguments << "C:/downloads/1.txt";

        QProcess *myProcess = new QProcess();
        myProcess->start(program, arguments);
Notepad++.exe заменить на Word.exe, 1.txt заменить на путь к файлу документа. Думаю, будет работать.
15K
22 марта 2012 года
DragonHT
38 / / 02.08.2007
Цитата: Alm3n
 
Код:
QString program = "C:/Program Files/Notepad++/notepad++.exe";
        QStringList arguments;
        arguments << "C:/downloads/1.txt";

        QProcess *myProcess = new QProcess();
        myProcess->start(program, arguments);
Notepad++.exe заменить на Word.exe, 1.txt заменить на путь к файлу документа. Думаю, будет работать.


ну как минимум такой фокус не срабатывает даже просто попыткой через консоль выполнить вызов notepad++ c аргументом - путь до файла , это привело только к открытию notepad++ так что не вариант...

316
22 марта 2012 года
Alm3n
889 / / 29.05.2009
Странно, странно. А у меня всё отлично работает.
394
23 марта 2012 года
MegaMozg
317 / / 18.03.2006
Раз пишите под Windows, можно воспользоваться функцией WinAPI ShellExecute()
7
23 марта 2012 года
@pixo $oft
3.4K / / 20.09.2006
Про кавычки не забываем в случае наличия пробелов,ага-ага
15K
24 марта 2012 года
DragonHT
38 / / 02.08.2007
Цитата: @pixo $oft
Про кавычки не забываем в случае наличия пробелов,ага-ага


К счастью я умею читать что мне cmd говорит при выполнении вызовов. Это о птичках.

С вордом разобрался.

 
Код:
QAxObject* docs = m_word->querySubObject( "Documents" );
QVariant filename(*filename);
QVariant confirmconversions(false);
QVariant readonly(true);
QVariant addtorecentfiles(false);
QVariant passworddocument("");
QVariant passwordtemplate("");
QVariant revert(false);
QAxObject* doc = docs->querySubObject("Open(const QVariant&, const QVariant&, const QVariant&, const QVariant&, const QVariant&, const QVariant&,const QVariant&)", filename, confirmconversions, readonly, addtorecentfiles, passworddocument, passwordtemplate, revert);
Но к сожалению абстрагироваться к любому приложению не получилось. Поскольку пишу не под винду, а под мобильную платформу чистого решения на Qt, в силу некоторых особенностей, нет. Как оказалось это реализуется средствами функций из SDK.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог