Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать программе файл перетаскивая его, т.е. схватил файл, тащишь его на програм 
:(
    Опции темы
andrew_121
Дата 10.9.2009, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Вобщем сабж.
Хватаю файл, тащу на иконку программы, она запускается с этим файлом как аргументом(вроди понятно объяснил).
Как такое делается?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 10.9.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



это должна поддерживать программа, в которой ты это делаешь. Например, программа рабочего стола.
В принципе, обычный drag and drop. Каждая иконка получает сообщение "onDrop", затем берет информацию о том, что нёс курсор, преобразует в параметр командной строки и запускает программу, которой она принадлежит.
PM   Вверх
Mabramyan
Дата 10.9.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 3.7.2007
Где: Алматы

Репутация: нет
Всего: нет



Код

int main(int argc, char* argv[]) {
...

argv[0] - адрес твоей программы
argv[1] - адрес программы которую перетащил
PM MAIL WWW   Вверх
SABROG
Дата 10.9.2009, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Так моднее smile

Код

QString arg = QCoreApplication::arguments()[1];



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
andrew_121
Дата 10.9.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Mabramyan
SABROG, Так просто? smile  Я действительно думал что нужно что-то типа того что bsa сказал. Класс!
А что нужно чтоб загрузился файл который перетаскиваешь в окно уже запущенной программы?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
SABROG
Дата 10.9.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(andrew_121 @  10.9.2009,  17:42 Найти цитируемый пост)
А что нужно чтоб загрузился файл который перетаскиваешь в окно уже запущенной программы? 


Немного почитать документацию smile

Код

Widget::Widget(QWidget *parent)
    : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);
    setAcceptDrops(true);
}

void Widget::dragEnterEvent(QDragEnterEvent *event)
{
    if (event->mimeData()->hasUrls())
        event->acceptProposedAction();
}

void Widget::dropEvent(QDropEvent *event)
{
    QStringList fileNames;
    foreach (QUrl url, event->mimeData()->urls()) {
        QString str = url.toLocalFile();
        if (!str.isEmpty())
            fileNames << str;
    }
    if (!fileNames.isEmpty())
    QMessageBox::information(this, "Dropped files.", fileNames.join(", "));
}


Это сообщение отредактировал(а) SABROG - 10.9.2009, 21:31


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
andrew_121
Дата 10.9.2009, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



Цитата(SABROG @  10.9.2009,  21:27 Найти цитируемый пост)
Немного почитать документацию

просто я не знал что именно искать.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
SABROG
Дата 10.9.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(andrew_121 @ 10.9.2009,  21:30)
Цитата(SABROG @  10.9.2009,  21:27 Найти цитируемый пост)
Немного почитать документацию

просто я не знал что именно искать.

Я в принципе тоже. Начал с QWidget::dropEvent(), по ходу чтения пришел к QMimeData.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
null56
Дата 10.9.2009, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



смотри в сторону 
Код


void QWidget::dropEvent ( QDropEvent * event )   [virtual protected]

This event handler is called when the drag is dropped on this widget. The event is passed in the event parameter.

See the Drag-and-drop documentation for an overview of how to provide drag-and-drop in your application.

и MIME типы
Код

QDropEvent
QMimeData

оттуда можно понять, что передается и вытащить нужную инфу или загрузить файл

Добавлено через 1 минуту и 21 секунду
блин, немного с опозданием )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1195 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.