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;
}
本文展示了如何使用Qt的文件选择器组件FilePicker进行文件选择和读写操作,包括设置文件类型、目录、标题及模式,以及关联信号槽进行事件处理。
16

被折叠的 条评论
为什么被折叠?



