Название: drag&drop Отправлено: lem от Декабрь 05, 2010, 18:32 поясните плз, как сделать область, при переносе файла на которую переменной присваивался путь к файлу и выполнялся участок кода и как настроить программу чтоб она отображалась не в списке окон (на панели внизу) а в области уведомлений и пявлялась/исчезала при нажатии F11
Название: Re: drag&drop Отправлено: ernie от Декабрь 06, 2010, 07:07 1.assistant -> Drag and Drop.
2.window flag QT::Tool + assistant->system tray icon Название: Re: drag&drop Отправлено: lem от Декабрь 06, 2010, 14:26 1)я так понял, что это был совет посмотреть в ассистенте: посмотрел, но не понял, если не сложно, дайте плз пример
2)вообще не понял ??? Название: Re: drag&drop Отправлено: deaks от Декабрь 06, 2010, 14:52 ну емае)))в ассистанте введите Drag and drop examples
Название: Re: drag&drop Отправлено: lem от Декабрь 06, 2010, 16:49 простите за нубство, но я в QT недавно, многого не понимаю. В ассистенте я искал, НИЧЕГО НЕ ПОНЯЛ, примеров там как таковых не нашел, только описание класса. Гугление тоже ни к чему не привело. У кого есть время, напишите пожалуйста подробно
все, что я смог найти - это drag and drop для qtextedit, но это не совсем то Название: Re: drag&drop Отправлено: deaks от Декабрь 07, 2010, 00:10 ну тогда может это вам поможет - http://www.qtforum.org/article/33691/solved-how-to-get-full-filename-from-drag-and-drop-file.html
Название: Re: drag&drop Отправлено: ernie от Декабрь 07, 2010, 07:22 lem.
1.Сделать setAcceptDrops(true) для виджета. void <Имя твоего виджетпа>::dragEnterEvent(QDragEnterEvent *event) { bool typeFlag = false; urls = event->mimeData()->urls(); if (urls.isEmpty()) return; for (int i=0;i<urls.size();i++) { QFileInfo *inf = new QFileInfo(urls.at(i).toString()); QString suf = inf->completeSuffix(); if ((suf=="jpeg")||(suf=="jpg")||(suf=="tiff")||(suf=="png")||(suf=="raw")||(suf=="bmp")||(suf=="gif")) { typeFlag = true; } } if (typeFlag==true) { event->acceptProposedAction(); } } void <Имя твоего виджета>::dropEvent(QDropEvent *event) { foreach(QUrl path,urls) { QMessageBox::information(this,"dropped files",path.toString()); } } В dragEnterEvent проверяем на возможность опускания на виджет файлов этого типа(в примере это картинки с определенным расширением),а в dropEvent уже осуществляем действия нам нужные с опущенными файлами. 2.чтобы не отображалось окно на панели(баре) надо сделать setWindowFlag(Qt::tool),а по созданию в области уведомлений(как я понял в трее),читай System Tray Icon ,так же если хочешь появления по F11 из любого места ОС,придётся заюзать Qext библиотеку,ибо в qt горячие клавиши только при активном виджете программы работают. |