Название: База данных и qt Отправлено: Trademaster от Август 21, 2013, 08:57 Ребят ,всем привет. Я тут подумал ,а возможно ли в qt реализовать такую штуку.
Предположим ,я хочу ,чтоб в моей базе данных хранились данные о под.программах моей программы. Это путь к екзешнику (для запуска) и путь к иконке (для меню основной программы) . Возможно ли реализовать то , что qt будет проверять всю базу данных ,если там есть утилиты(например утилита калькулятора ,это путь к екзешнику калькулятора и его иконке) - он их добавит в меню(в меню при нажатии на иконку будет запускаться екзешник) ,если их нет ,разумеется нет. И если да ,то какую базу данных для этого лучше юзать (нужна самая простая ,я раньше с бд не работал почти) Название: Re: База данных и qt Отправлено: voral от Август 21, 2013, 09:16 Возможно ли реализовать то , что qt будет проверять всю базу данных ,если там есть утилиты(например утилита калькулятора ,это путь к екзешнику калькулятора и его иконке) - он их добавит в меню(в меню при нажатии на иконку будет запускаться екзешник) ,если их нет ,разумеется нет. Возможно. Но "проверять" будет не Qt, а ваша программа. Можно при помощи классов Qt.Проверять ни чего не надо. Т.к. ваша же программа и будет доблять в базу все пункты, которые нужны. Соответственно все, что в базе (а точнее даже в одной таблице) надо добавить в меню И если да ,то какую базу данных для этого лучше юзать (нужна самая простая ,я раньше с бд не работал почти) Абсолютно без разницы. Для данной задчаи вообще можно обойтись без БД. Можно хранить хоть в реестре, хоть в ini файле, хоть в файле с собственной структурой......Название: Re: База данных и qt Отправлено: lex_newton от Август 21, 2013, 17:55 если хочется именно базу данных - то SQLite (в Qt работает из коробки).
Название: Re: База данных и qt Отправлено: Trademaster от Август 21, 2013, 22:45 Возможно ли реализовать то , что qt будет проверять всю базу данных ,если там есть утилиты(например утилита калькулятора ,это путь к екзешнику калькулятора и его иконке) - он их добавит в меню(в меню при нажатии на иконку будет запускаться екзешник) ,если их нет ,разумеется нет. Возможно. Но "проверять" будет не Qt, а ваша программа. Можно при помощи классов Qt.Проверять ни чего не надо. Т.к. ваша же программа и будет доблять в базу все пункты, которые нужны. Соответственно все, что в базе (а точнее даже в одной таблице) надо добавить в меню И если да ,то какую базу данных для этого лучше юзать (нужна самая простая ,я раньше с бд не работал почти) Абсолютно без разницы. Для данной задчаи вообще можно обойтись без БД. Можно хранить хоть в реестре, хоть в ini файле, хоть в файле с собственной структурой......Название: Re: База данных и qt Отправлено: Bepec от Август 22, 2013, 06:55 Ну во 1 - под какую ОС хотите?
Хотя, вроде по тексту вы о винде говорите :) Алгоритм: 1) При установке менеджера в реестр добавляется ключ со значением пути к базе данных. 2) Все программы, которые хотят записаться в 3) Менеджер просто открывает БД и считывает пути к программам и дополнительную информацию. Допустим путь к файлу запуска, краткое описание. 4) Потом проходится по списку путей, тырит из файлов иконки и создаёт необходимое количество графических элементов с данными. Аля кнопка с иконкой и названием программы. 5) Далее просто при нажатии определяем клавишу, которая была нажата и запускаем необходимое приложение. Название: Re: База данных и qt Отправлено: voral от Август 22, 2013, 07:55 Если не тяжело ,можете хоть примерно объяснить реализацию ? Если не сложно ,то вообще в скайпе . Просто проблема в том ,что я не хочу ,чтоб МОЯ ПРОГРАММА добавляла что - то в бд :(( Я это попытался сделать в коде ,в итоге все вообщем-то работало ,но довольно криво. Программа по сути набор утилит ,которые к ней устанавливаются отдельно и хочется ,что бы при установке утилиты ,в бд \ еще что -то заносились данные о екзешнике утилиты и иконке ,а моя программа при запуске просто брала все иконки из бд ,соединяла все иконки с их екзешниками и в итоге при нажатии на иконку запускался екзешник. Т.е моя программа ничего не заносит в бд ,лишь берет от туда (а в бд все данные заносятся при установке утилиты). Вот реализация подобного мне не ясна :( Одна из возможных реализаций. Каждая утилита при установке. Записывается себя: Код: QSettings settings("youorgname", "yoursystemname"); yoursystemname - имя вашей программы ToolOne - имя подпрограммы ваша супер программа читает все это и добавляет в меню: Код: QSettings settings("youorgname", "yoursystemname"); Код: void onRun() Сам не тестил - писал прям здесь. Но принцип должен быть понятен. Название: Re: База данных и qt Отправлено: voral от Август 22, 2013, 08:11 На всякий случай: я привел только черновик кода. Вы в сеттингах можете хранить и другую информацию. Тогда список подпрограмм можно объеденить в какую либо группу. По умолчанию QSettings пишет так как "принято" в системе (в винде в реестр, на маке в XML на линуксах в ini). Но вы можете, при желании, четко задать ini файл.
И, конечно же, прописывать в коде прямым текстом путь к файлам - зло. Так, что позаботьтесь и об этом. |