Иногда вам может понадобиться зайти в вашу биографию и сказать, чтобы она загружалась на диск с вашими установками на нем, если это не происходит автоматически. Сделайте это, перезагрузив компьютер и воспользовавшись некоторыми вариантами клавиши F: например, мой F12, я думаю, я всегда забываю и просто нажимаю их всех, пока я не попаду в биос, если честно.
Из bios вы просто выбираете жесткий диск, который хотите загрузиться, в качестве наиболее важного (не забудьте изменить его после установки, если необходимо)
Если это не сработало, я бы сказал, что это было потому, что вы не форматировал его правильно
Я использую FAT. Тем не менее, я просто устанавливаю ключ usb с помощью unetbootin (все же, я не вижу, чтобы это был другой процесс после форматирования). Форматирование USB довольно прямолинейно, если вы счастливы стереть его, чтобы вы могли рассмотреть этот вариант, если не знаете, как это сделать. Я также обнаружил, что полезно держать загруженный ключ usb под рукой, если что-то идет ужасно неправильно. Я могу легко загрузиться в пробную версию «ubuntu», чтобы восстановить мои файлы, прежде чем очистить систему и начать снова после этого, не теряя пота.
Невозможно записать файл из QML / Javascript, поэтому нам нужно немного C ++ для выполнения задания.
Создайте новый проект Qt Quick 2 Application (Built-in Elements) в Qt Creator с именем FileIO со следующим файлы:
Файл проекта: FileIO
# The .cpp file which was generated for your project. Feel free to hack it.
SOURCES += main.cpp
# Please do not modify the following two lines. Required for deployment.
include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
qtcAddDeployment()
HEADERS += fileio.h
Файл заголовка: fileio.h (вдохновлен чтением и записью файлов в QML) 5]
#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
#include <QFile>
#include <QTextStream>
class FileIO : public QObject
{
Q_OBJECT
public slots:
bool write(const QString& source, const QString& data)
{
if (source.isEmpty())
return false;
QFile file(source);
if (!file.open(QFile::WriteOnly | QFile::Truncate))
return false;
QTextStream out(&file);
out << data;
file.close();
return true;
}
public:
FileIO() {}
};
#endif // FILEIO_H
fileio.h :
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QQmlContext>
#include "fileio.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
FileIO fileIO;
QtQuick2ApplicationViewer viewer;
viewer.rootContext()->setContextProperty("fileio", &fileIO);
viewer.setMainQmlFile(QStringLiteral("qml/FileIO/main.qml"));
viewer.showExpanded();
return app.exec();
}
И, наконец, qml / FileIO / main.qml:
import QtQuick 2.0
Rectangle {
width: 360
height: 360
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
MouseArea {
anchors.fill: parent
onClicked: {
fileio.write("/tmp/test", "Ask Ubuntu");
Qt.quit();
}
}
}
To создайте приложение, откройте терминал и перейдите в папку проекта FileIO, чтобы ввести:
`qmake && make && ./FileIO`.
Запустит приложение. Если вы нажмете на MainView, будет создан текстовый файл, и приложение будет закрыто.
qml / FileIO / main.qml :
Вышеприведенный код будет работайте без ограничений для настольного приложения. Что касается прав на запись для Ubuntu Touch, вам нужно будет следовать рекомендациям о Чтение и запись файлов в QML для пакетов кликов:
Приложение будет иметь файлы доступа для чтения / записи в стандартные базовые каталоги XDG. В частности:XDG_CACHE_HOME/<APP_PKGNAME>
XDG_CONFIG_HOME/<APP_PKGNAME>
XDG_DATA_HOME/<APP_PKGNAME>
XDG_RUNTIME_DIR/confined/<APP_PKGNAME>
, где APP_PKGNAME - это то, что используется в поле «имя» манифеста клика. Например, если манифест клика имеет это: $ cat ./manifest.json
{
"name": "com.ubuntu.developer.you.yourapp",
...
}
, то приложение будет иметь доступ для чтения / записи к этим каталогам и любым файлам или поддиректориям под ними: XDG_CACHE_HOME/com.ubuntu.developer.you.yourapp
XDG_CONFIG_HOME/com.ubuntu.developer.you.yourapp
XDG_DATA_HOME/com.ubuntu.developer.you.yourapp
XDG_RUNTIME_DIR/confined/com.ubuntu.developer.you.yourapp
Чтобы уточнить политику конфайнмента, если вы хотите написать файл на Ubuntu Touch, в файле mytype.cpp замените:
QString filename = "text.txt";
на:
QString filename = "/home/phablet/.local/share/your_app_name/text.txt";