Название: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 20, 2011, 14:08 привет всем! я новичок по программированию в Qt и я хочу узнать как работать с QDir::drives(), я знаю что функция возвращает тип Qfileinfolist. Так как мне работать с типом данных Qfileinfolist что бы вывести данные о HDD в TextBrowser ?
Название: Re: QDir::drives() - как с этим работать? Отправлено: Amigo_sa от Июнь 20, 2011, 14:56 Цитировать QFileInfoList - Synonym for QList<QFileInfo>. Значит, вы можете просто перебрать элементы в списке.Код: QFileInfoList filesInfo = QDir::drives(); Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 20, 2011, 15:27 спасибо!
Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 20, 2011, 16:23 Этот метод работает только в винде, на никсах (в тч маках) тупо возвращает один "/"
Название: Re: QDir::drives() - как с этим работать? Отправлено: LisandreL от Июнь 20, 2011, 16:43 Этот метод работает только в винде, на никсах (в тч маках) тупо возвращает один "/" Ну так именнованных дисков в этих системах и нет.А монтированный в каталог диск этот метод и под Win не вернёт. Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 20, 2011, 17:19 буковкой - нет, а разделы примонтированные - есть
на маке вообще есть аналог мукомпутора - /Volumes Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 20, 2011, 19:42 так в винде он будет возвращать буквы?
в Mac OS X я сделал вот что для вывода разделов: Код: val.cd("/Volumes/"); есть еще вопрос не по теме: как работать с текст файлами, тоесть как открыть изменить и сохранить? Название: Re: QDir::drives() - как с этим работать? Отправлено: kambala от Июнь 20, 2011, 20:08 так в винде он будет возвращать буквы? даесть еще вопрос не по теме: как работать с текст файлами, тоесть как открыть изменить и сохранить? почитай про QFile, QTextStream, QTextEdit...Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 20, 2011, 20:48 в Mac OS X я сделал вот что для вывода разделов: https://gitorious.org/qdrive/qdrive/blobs/master/src/qdriveinfo_mac.cpp#line189Код: val.cd("/Volumes/"); Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 11:33 в Mac OS X я сделал вот что для вывода разделов: https://gitorious.org/qdrive/qdrive/blobs/master/src/qdriveinfo_mac.cpp#line189Код: val.cd("/Volumes/"); скачал сурсы программы, откомпилировал, но программа не запускается, ну думаю и ладно, встроил сурсы в свою программу в коде написал: Код: ui->textBrowser->append(QString::number(QDriveInfo::drives().first().totalSize())); программа не запускается, иконка тупо скачет (mac os x, когда иконка прыгает значит идет запуск программы ) но окно программы не появляется Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 11:50 интересно, у меня работало. вообще там циклиться нечему...
поставьте дебаг печать в цикл, мб реально зацикливается Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 11:58 я не умею дебагом еще пользоваться)
либо обьясните на пальцах как им пользоваться дибо просто расскажите как встроили сурсы программы в свой код, скорее всего я встроил неправильно Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 12:07 вы можете просто тупо написать в своем прошнике include(src.pri) который лежит где-то внутрях проекта, либо скопипастить содержимое src.pri к себе (можно удалить qdrivecontroller и qsystemerror_p, драйвинфо их не использует).
Дебаг - пишите в цикле Код: QDebug() << volumeIndex; Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 12:18 вы можете просто тупо написать в своем прошнике include(src.pri) который лежит где-то внутрях проекта, либо скопипастить содержимое src.pri к себе (можно удалить qdrivecontroller и qsystemerror_p, драйвинфо их не использует). Дебаг - пишите в цикле Код: QDebug() << volumeIndex; так? Код: #------------------------------------------------- Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 12:28 Код: -#include(qdrive/qdrive.pro) Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 13:32 Код: -#include(qdrive/qdrive.pro) файла src.pri там вообще нет Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 13:33 а это что https://gitorious.org/qdrive/qdrive/blobs/master/src/src.pri ?
Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 13:56 а это что https://gitorious.org/qdrive/qdrive/blobs/master/src/src.pri ? сори, не то качал Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 14:24 Дебаг - пишите в цикле а в какой цикл то?Код: QDebug() << volumeIndex; Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 14:32 этот
https://gitorious.org/qdrive/qdrive/blobs/master/src/qdriveinfo_mac.cpp#line194 (который перебирает системные драйвы) Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 15:42 вставляю
Код: QDebug() << volumeIndex; компиль ругается http://puu.sh/2Koe Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 15:51 Хедеры кто подключать будет (#include <QDebug>)?
Лучше в самое начало цикла, до вызова ф-ий маковского апи Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 15:57 http://puu.sh/2Kp4
как уточнить тип? Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 16:17 извините, я опечатался
qDebug() << volumeIndex; q малая Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 16:22 я очень и очень озадачен.... прога запустилась....
теперь обьясните как с QList работать) можно документацию ток н русском, мозги на английском ломать не хочется UPD прога запустилась и QDriveInfo пашет, в текстброузер вывел количество устройств Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 17:03 Код: QList<QDriveInfo> targets = QDriveInfo::drives(); прога рушится Код: Запускается /Users/dangreen/EasyKitAssistent-build-desktop/EasyKitAssistent.app/Contents/MacOS/EasyKitAssistent... че не правильно сделал? Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 17:08 Кто сказал что в списке есть три элемента?
Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 17:12 потому что QDriveInfo::drives().count() == 8
и разделов у меня 8 Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 17:16 Запустите в дебаге и скажите на какой строке падает.
Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 17:18 http://puu.sh/2Ktl
Название: Re: QDir::drives() - как с этим работать? Отправлено: Авварон от Июнь 21, 2011, 17:23 Интересно. А можете выложить тестовый проектик, который падает? Возможно что там и бага где-то есть.
Название: Re: QDir::drives() - как с этим работать? Отправлено: dangreen от Июнь 21, 2011, 17:44 кинул в лс
|