Выберите файл в Android с QML FileCAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Выберите файл в Android с QML FileC

Сообщение Anonymous »

В моем приложении QML я хочу выбрать файл с FileDialog в QML: < /p>
FileOpen {
id: fileBox
fileName: selectedSp.uiImageNeuDatei
headerText: "Dateiauswahl"
onButtonClicked: selectedSp.onSearchButtonClicked()
}

FileDialog {
id: fileDialog
title: "Auswahl Bild"
onAccepted: selectedSp.onSetFile(fileDialog.selectedFile)
visible: selectedSp.uiViewFileDlg.uiValue
nameFilters: ["JPG Dateien (*.jpg)"]
fileMode: FileDialog.OpenFile
}
< /code>
На Linux и Windows он работает без каких -либо проблем. Но на Android я получаю странное имя файла, которое не может быть открыто:
< /p>
Как можно выбрать файл JPG в каталоге загрузки, например, и открыть его в моей программе C ++? < /P>
РЕДАКТИРОВАТЬ:
qml-gui
import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
import WM 1.0
import assets 1.0
import components 1.0

Item {
property Sp selectedSp

Rectangle {
id: windowBox
anchors.fill: parent

Image {
width: parent.width
height: parent.height
source: Style.imageBackground
}

ScrollView {
id: scrollView
anchors {
left: parent.left
right: parent.right
top: parent.top
bottom: commandBar.top
margins: Style.sizeScreenMargin
}
clip: true

Column {
spacing: Style.sizeScreenMargin
width: scrollView.width

FileOpen {
id: fileBox
fileName: selectedSp.uiImageNeuDatei
headerText: "Dateiauswahl"
onButtonClicked: selectedSp.onSearchButtonClicked()
}

FileDialog {
id: fileDialog
title: "Auswahl Bild"
onAccepted: selectedSp.onSetFile(fileDialog.selectedFile)
visible: selectedSp.uiViewFileDlg.uiValue
nameFilters: ["JPG Dateien (*.jpg)"]
fileMode: FileDialog.OpenFile
}
}
}
}
}
< /code>
** fileopen ** < /p>
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import WM 1.0
import assets 1.0
import components 1.0

Panel {
property StringDecorator fileName
signal buttonClicked()

width: parent.width*0.9
x: 15

contentComponent:
Column {
objectName: "FileOpen"
width: parent.width
spacing: Style.sizeControlSpacing
Row {
id: row1
spacing: Style.sizeControlSpacing
width: parent.width

StringEditorSingleLine {
stringDecorator: fileName
widthValue: 1
setWidthValue: false
}

Rectangle {
id: button
width: Style.widthDataControls
height: Style.heightDataControls
border {
color: "#000000"
width: 1
}
Text {
id: name
text: "Suchen"
verticalAlignment: Qt.AlignVCenter
horizontalAlignment: Qt.AlignHCenter
anchors {
fill: parent
margins: Style.heightDataControls / 4
}
font.pixelSize: Style.pixelSizeDataControls
}

MouseArea {
anchors.fill: parent
onClicked: buttonClicked()
}
}
}
}
}
< /code>
** c ++-code ** < /p>
class WMLIBSHARED_EXPORT Sp : public QObject
{
Q_OBJECT
Q_PROPERTY(datad::StringDecorator *uiImageNeuBeschreibung READ getImageNeuBeschreibung WRITE setImageNeuBeschreibung
NOTIFY valueChanged)
Q_PROPERTY(datad::StringDecorator *uiImageNeuDatei READ getImageNeuDatei WRITE setImageNeuDatei NOTIFY valueChanged)
Q_PROPERTY(datad::BoolDecorator *uiViewFileDlg READ getViewFileDlg WRITE setViewFileDlg NOTIFY valueChanged)

public:
explicit Sp(QObject *parent = nullptr, QString urlArg = "");
~Sp();

datad::StringDecorator *getImageNeuBeschreibung();
datad::StringDecorator *getImageNeuDatei();
datad::BoolDecorator *getViewFileDlg(void);
void setImageNeuBeschreibung(datad::StringDecorator *);
void setImageNeuBeschreibung(QString);
void setImageNeuDatei(datad::StringDecorator *);
void setImageNeuDatei(QString);
void setViewFileDlg(datad::BoolDecorator *);

Q_SIGNALS:
void valueChanged();
void imageOk();

public Q_SLOTS:

private:

QString url {};
datad::StringDecorator *imageNeuBeschreibung {nullptr};
datad::StringDecorator *imageNeuDatei {nullptr};
datad::BoolDecorator *viewFileDlg {nullptr};
};
< /code>
Sp::Sp(QObject *parent, QString urlArg)
: QObject {parent}
, url(urlArg)
{
imageNeuDatei = new datad::StringDecorator(parent, "imageNeuDatei", "Datei", "");
imageNeuBeschreibung = new datad::StringDecorator(parent, "imageNeuBeschreibung", "Beschreibung", "");
viewFileDlg = new datad::BoolDecorator(parent, "viewfiledlg", "Zeige Datei Dialog", false);

QObject::connect(imageNeuDatei, &datad::StringDecorator::valueChanged, this, &Sp::valueChanged);
QObject::connect(imageNeuBeschreibung, &datad::StringDecorator::valueChanged, this, &Sp::valueChanged);
QObject::connect(
rpcClient, SIGNAL(messageReceived(const QJsonRpcMessage &)), this, SLOT(msgRecieved(const QJsonRpcMessage &)));

}

Sp::~Sp()
{
}

void Sp::saveImage()
{
qDebug()

Подробнее здесь: https://stackoverflow.com/questions/793 ... filedialog
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»