黑莓OS10开发(2) 选择本地文件1

来源:互联网 发布:开关柜设计软件 编辑:程序博客网 时间:2024/05/30 07:12
using namespace bb::cascades;typedef bb::cascades::pickers::FilePicker FFilePicker;typedef bb::cascades::pickers::FileType FFileType;typedef bb::cascades::pickers::FilePickerMode FFilePickerMode;


bb::cascades::pickers::FilePicker* filePicker = new bb::cascades::pickers::FilePicker();openFileFromCode(filePicker);bool connectResult;//初始化信息Q_UNUSED(connectResult);//将filePicker的fileSelected事件关联到onFileSelected函数上,并且将关联结果返回connectResult = QObject::connect(filePicker,SIGNAL(fileSelected(const QStringList&)), this,SLOT(onFileSelected(const QStringList&)));//在debug模式中查看关联结果Q_ASSERT(connectResult);// 将取消按钮的行为关联到onCanceled函数上connectResult = QObject::connect(filePicker, SIGNAL(canceled()), this,SLOT(onCanceled()));//在debug模式中查看关联结果Q_ASSERT(connectResult);

private:    static const QString m_personsFilePath;    QTranslator* m_pTranslator;    bb::cascades::LocaleHandler* m_pLocaleHandler;    void writeFile(QString filename, QString message);    QString readFile(QString filename) ;    void openFileFromCode(bb::cascades::pickers::FilePicker* filePicker);

void ApplicationUI::onFileSelected(const QStringList & stringList) {fprintf(stderr,"open file : %s\n",stringList.at(0).toLatin1().data());QString filename ="./data/test.txt";QString result =readFile(filename);fprintf(stderr,"read result %s",result.toUtf8().data());}void ApplicationUI::onCanceled() {fprintf(stderr,"cancel select file");}void ApplicationUI::openFileFromCode(FFilePicker* filePicker) {filePicker->setType(FFileType::Picture);filePicker->setTitle("Select Read File");filePicker->setMode(FFilePickerMode::Picker);filePicker->setDirectories(QStringList("/accounts/1000/shared/misc"));filePicker->open();}

注意:当需要使用UTF-8来保存数据时,应该先讲文本转为UTF-8格式的QString。By default QString uses Latin1

QString unicodeString=QString::fromUtf8("1234测试");


void ApplicationUI::writeFile(QString filename, QString message) {QFile file(filename);if (file.open(QIODevice::WriteOnly|QIODevice::Text)) {QTextStream out(&file);out.setCodec("UTF-8");out.setGenerateByteOrderMark(false);out << message;}file.flush();file.close();}QString ApplicationUI::readFile(QString filename) {QFile file(filename);if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return "";QTextStream textStream(&file);textStream.setCodec("UTF-8");QString result = textStream.readAll();file.close();return result;}



原创粉丝点击