Russian Qt Forum
Ноябрь 22, 2024, 06:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Qt / Model-View (MV) / Re: QFileSystemModel не не обновляется с шарами samba : Июнь 06, 2023, 20:13
Да, так и надо делать. Ручной апдейт там легко делается (я делал) - надо дергать слот какой-то (типа обновиДир(QString), к-ый дергается вотчером.
Тема умерла, а вопрос для меня стал актуален!
Можно поподробнее, как вручную обновить QFileSystemModel?
Создаю model в конструкторе:
Код:
    model = new QFileSystemModel(this);
    model->setFilter(QDir::AllEntries);
    model->setRootPath("");
    ui->listView->setModel(model);
Затем, обрабатываю клики:
Код:
void TWgtFileList::on_listView_clicked(const QModelIndex &index)
{
    QFileInfo fileInfo = model->fileInfo(index);
    if (fileInfo.fileName() == "..")
    {
        QDir dir = fileInfo.dir();
        dir.cdUp();
        ui->listView->setRootIndex(model->index(dir.absolutePath()));
        ui->lblPath->setText(model->filePath(ui->listView->rootIndex()));
    }
    else if (fileInfo.fileName() == ".")
    {
        ui->listView->setRootIndex(model->index(""));
        ui->lblPath->setText(model->filePath(ui->listView->rootIndex()));
    }
    else if (fileInfo.isDir())
    {
        QString str = model->filePath(ui->listView->rootIndex());
        ui->listView->setRootIndex(index);
        ui->lblPath->setText(str);
    }
    else if (fileInfo.isFile())
        fName = fileInfo.absoluteFilePath();
}

Если одновременно записать файл в сетевую папку, она в модели не обновляется. Что надо "дёрнуть"?

2  Qt / Общие вопросы / Re: Запуск SUDO из-под обычного пользователя : Февраль 16, 2023, 21:26
Спасибо за помощь, но это в Астре не помогло.
Нашел документацию, там вот что написано:
Цитировать
5.11. Приложения и права администратора
Большинство утилит настройки требуют привилегий суперпользователя. Есть ряд
способов предоставления привилегий: от sudo и членства в группах до PolicyKit. Решение
этой задачи возможно с использованием программы fly-su. Программа, предполагающая
действия администратора, обязательно должна информировать пользователя о невозможности выполнения каких-либо функций без соответствующей авторизации и, по возможности,
давать пользователю способ выполнить такую авторизацию, например, с помощью рекомендуемой fly-su.
Так что можно не включать пользователя в группу sudo. По крайней мере в ОС Astra Linux Common Edition.

В итоге, код ниже позволяет вывести окно ввода пароля суперпользователя для выполнения команды с правами администратора.
Код:
    QProcess *proc = new QProcess(this);
    proc->start("/bin/bash", QStringList() << "-c" << "fly-su kate");
    proc->waitForStarted(1000);
3  Qt / Общие вопросы / Запуск SUDO из-под обычного пользователя : Февраль 15, 2023, 19:37
Всех приветствую!
Приложение на Qt 5.11, ОС AstraLinux.
Необходимо выполнить некоторую консольную команду от имени суперпользователя,
при этом само приложение запущено не из-под "root". Подразумевается, что необходимо
по-ходу выполнения программы вводить пароль суперпользователя.
Вот пример моего кода.
Код:
QProcess *proc = new QProcess(this);
proc->start("/bin/bash", QStringList() << "-c" << "sudo kate");
proc->waitForStarted(1000);
Он, как понятно, не срабатывает.

Во-первых. Как сделать возможность запуска SUDO-команды из-под обычного пользователя?
Во-вторых. Как организовать ввод пароля через стандартный GUI-диалог операционной системы? (gksu не работает)
4  Qt / Мультимедиа / Re: Последовательное воспроизведение АУДИО : Ноябрь 12, 2022, 14:35
Спасибо за ответ!
Решил делать через QMediaPlayer

получилось не так сложно и, впринципе, не сильно "затратно":
Код:
    QMediaPlayer *mplayer = new QMediaPlayer(this);
    QMediaPlaylist *mplist = new QMediaPlaylist(mplayer);
    mplayer->setPlaylist(mplist);

    mplist->addMedia(QUrl("qrc:/sound/turn_left_.wav"));
    mplist->addMedia(QUrl("qrc:/sound/_100m.wav"));
    mplist->setPlaybackMode(QMediaPlaylist::Sequential);

    mplayer->play();
5  Qt / Мультимедиа / Последовательное воспроизведение АУДИО : Ноябрь 12, 2022, 14:07
Необходимо реализовать что-то похожее на подсказки навигатора
Задача простая:
Воспроизвести последовательно несколько аудиофайлов. Желательно, через QSound, чтобы было попроще.
Когда пытаюсь сделать так:
Код:
QSound::play(":/sound/turn_left_.wav");
QSound::play(":/sound/_100m.wav");
проигрываются одновременно два звука.

Или всё-же лучше заморочиться через QMediaPlayer и QMediaPlaylist?
6  Qt / Вопросы новичков / Возможна ли связка Qt + Android + GDAL/OGR? : Август 15, 2022, 20:07
Раньше, давным-давно, компилировал из исходников библиотеки GDAL/OGR, чтобы с их помощью писать ГИС-приложения под Windows/Linux. Сейчас предложили сделать что-то подобное на Android. Под Android ни разу не программировал. Но, почитав интернеты, понял, что используя Qt for Android научиться этому вполне реально.  Улыбающийся
Собственно, вопрос... Возможно ли использование библиотек GDAL/OGR для приложения под Android на Qt/C++?  В замешательстве Как это делается? Нужно для этого каким-то отдельным способом собирать библиотеки GDAL, чтобы использовать их в проекте и компилировать APK?
7  Qt / Базы данных / Как создать файл с БД SQLite из-под приложения? : Май 28, 2021, 11:26
Есть некоторая структура таблиц, которая используется с применением БД, основанной на SQLite. К этой БД подключаются еще несколько приложений (3-4) и тоже работают с ней. Необходим обмен между приложениями по SQL с использованием БД.
Из главного приложения должна создаваться сама база. Как создать её временно, в памяти и заполнить таблицами понятно, об этом пишут все учебники. Но как потом выгрузить её в отдельный файл, чтобы результаты после завершения приложения сохранились на ЖМД? Заранее создавать отдельный файл БД и таскать его с исполняемым файлом не хочется.
Страниц: [1]

Страница сгенерирована за 0.056 секунд. Запросов: 24.