QDial: как передать значение int в Qfile, который требует const char *? - PullRequest
0 голосов
/ 11 февраля 2020

Проблема уже описана в заголовке: я использую QDial для установки уровня контрастности 7-дюймового ЖК-дисплея (подключенного к встроенному Linux одноплатному компьютеру).

Простой способ сделать это, чтобы отправить на терминал команду "echo". Я отправляю ее как QFile:

QFile ContrLCD("/sys/class/backlight/backlight/brightness");

, и мне нужно отправить запись уровня в этом QFile

ContrLCD.write("number");

Проблема в том, что QDial управлять int переменной, в то время как QFile требует const char* для отправки числа, соответствующего контрасту.

Как это сделать?

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Этот пример взят из документации для QFile:

QFile file("out.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    return;

QTextStream out(&file);
out << "The magic number is: " << 49 << "\n";

Похоже, вы можете использовать QTextStream для записи форматированного вывода в QFile. Я не использовал его сам, так что могут быть другие способы, но для форматированного вывода чисел это, кажется, правильный инструмент.

1 голос
/ 11 февраля 2020
BacklightController::setBrightness(int brightness) // slot
{
    QFile f{"/sys/class/backlight/backlight/brightness"};
    if (!f.open(QIODevice::WriteOnly)) return;
    QTextStream stream{&f};
    stream << brightness;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...