Название: Динамическое создание элементов Отправлено: Yagoz от Февраля 26, 2018, 19:31 Выпала мне участь писать приложение на C++, для чего я выбрал Qt
Сразу отмечу, что опыта в программировании катастрофически мало Теперь к сути: Приложение обрабатывает txt файл, откуда берет по три значения из строчки Одно значение должно использоваться для имени элемента, два остальных выводятся при нажатии/наведении мыши на элемент Так же, в зависимости от последних двух параметров должна выбираться конкретная иконка Как это реализовать? Я вижу вариант с беспрерывным созданием кнопок на форме и созданием своего объекта класса Вариант с кнопками более менее понятен, но скорее всего очень неудобен Про классы и объекты, особенно их создание я ничего не знаю Буду рад ссылкам на статьи с примерами, кускам кодов и объяснениям "для чайников" Название: Re: Динамическое создание элементов Отправлено: qate от Февраля 27, 2018, 08:37 какие книги по qt ты уже прочитал ?
Название: Re: Динамическое создание элементов Отправлено: Day от Февраля 27, 2018, 10:14 У всех виджетов есть такой метод - setToolTip - установка "воздушной" подсказки - то что всплывает при наведении мышки
Название: Re: Динамическое создание элементов Отправлено: Yagoz от Февраля 27, 2018, 21:09 какие книги по qt ты уже прочитал ? К сожалению ни одной из-а банальной нехватки времениНазвание: Re: Динамическое создание элементов Отправлено: Day от Февраля 27, 2018, 21:28 Цитировать из-а банальной нехватки времени Конечно, лучше его тратить на нелепые вопросы, выхватывание каких-то не относящихся к делу кусков из статей и примеров и строить дом, не понимая, что такое кирпичи...Название: Re: Динамическое создание элементов Отправлено: Yagoz от Февраля 28, 2018, 11:23 Цитировать из-а банальной нехватки времени Конечно, лучше его тратить на нелепые вопросы, выхватывание каких-то не относящихся к делу кусков из статей и примеров и строить дом, не понимая, что такое кирпичи...Было бы это дело по моей инициативе - нашел бы для него время, подошел бы более основательно. А так мне просто надо сделать и забыть. Название: Re: Динамическое создание элементов Отправлено: ssoft от Февраля 28, 2018, 13:17 Описываемая задача, как раз подходит для самостоятельного изучения Qt.
Решение достаточно простое - кнопки накидать, таблицу сбацать или даже модель для вьюшек сформировать. Просто никто не хочет делать эту работу за другого, а потом еще и объяснять как это сделано. Если что-то написали - выкладывайте проект и спрашивайте по существу, что не получается. А если по делу? Было бы это дело по моей инициативе - нашел бы для него время, подошел бы более основательно. А так мне просто надо сделать и забыть. А так, то предлагаю сразу забыть) и не мучаться. Название: Re: Динамическое создание элементов Отправлено: ViTech от Февраля 28, 2018, 13:27 Поиск в гугле "qt tutorial":
Qt for Beginners (https://wiki.qt.io/Qt_for_Beginners) Qt Examples And Tutorials (https://doc-snapshots.qt.io/qt5-5.9/qtexamplesandtutorials.html) Теперь к сути: Приложение обрабатывает txt файл, откуда берет по три значения из строчки Одно значение должно использоваться для имени элемента, два остальных выводятся при нажатии/наведении мыши на элемент Так же, в зависимости от последних двух параметров должна выбираться конкретная иконка Как это реализовать? Я вижу вариант с беспрерывным созданием кнопок на форме и созданием своего объекта класса В итоге что должно получиться-то? :) Creating a Qt Widget Based Application (http://doc.qt.io/qtcreator/creator-writing-program.html) Layout Management (https://doc-snapshots.qt.io/qt5-5.9/layout.html) Название: Re: Динамическое создание элементов Отправлено: Yagoz от Февраля 28, 2018, 14:08 А так, то предлагаю сразу забыть) и не мучаться. Я бы с радостью, только есть слово "надо" В общем, на данный момент попробую организовать собственный виджет, будут вопросы-задам Название: Re: Динамическое создание элементов Отправлено: deMax от Марта 02, 2018, 16:07 Определились с элементом на который будете нажимать?
Если QPushButton визуально не нравиться, его можно стилем допилить. Не хотите ему изменять стиль, можно QLabel взять(ему нажималку сделать надо) Название: Re: Динамическое создание элементов Отправлено: Yagoz от Марта 06, 2018, 20:22 Определились с элементом на который будете нажимать? ... можно QLabel взять(ему нажималку сделать надо) Остановился на QLabel На данный момент как раз возник вопрос. Как было оговорено, изображение подбирается в зависимости от параметров из файла Я вижу два варианта реализации: 1) Функция подбирающая пикчу и возвращающая ее через Pixmap типа QPixmap picselect (...) {... return pic;} 2) Функция подбирающая пикчу и возвращающая путь к ней Какой из этих вариантов будет являться рабочими наименее замороченным? Название: Re: Динамическое создание элементов Отправлено: Bepec от Марта 07, 2018, 15:39 Любой, который вы сможете реализовать.
Ну и чисто благотворительность :D (файл с тем же кодом доступен внизу в приложении) Код: QPixmap getPixmap(QString param1, QString param2) Название: Re: Динамическое создание элементов Отправлено: Yagoz от Марта 09, 2018, 13:13 Ну и чисто благотворительность :D Большое спасибо за пример, разобрался, завелось) Название: Re: Динамическое создание элементов Отправлено: Yagoz от Марта 20, 2018, 16:32 Вновь возникли вопросы
Все касательно компоновки в QScrollArea По информации которую я нашел,рабочим вариантом является запихивание компоновки в QWidget, а его в QScrollArea. Сами объекты для компоновки в компоновку Часть прописанная в описании формы: Код: QGridLayout* grid = new QGridLayout; 1)Каким образом все это должно создаваться: программно или можно ручками на форму? 2)Если все прописано в описании, то как сослаться на grid из обработчика кнопки (через ui->...grid-> не пашет)? Название: Re: Динамическое создание элементов Отправлено: Day от Марта 20, 2018, 17:25 Цитировать как сослаться на grid Код
Название: Re: Динамическое создание элементов Отправлено: Yagoz от Марта 20, 2018, 19:28 Сейчас запихал все в обработчик (что не очень то и красиво), естественно все пашет
НО grid компонует в столбец Код: void Project::on_buttonStart_clicked() 1)Как поправить компоновку? Возможно я забыл про какие то параметры или не учел особенности 2)Как обратиться к объекту вне обработчика? Не хочется держать компоновку и стили внутри обработчика UPDATE: установил фон для формы, заметил, что все объекты попадающие в grid заполняют его построчно во всю ширину ScrollArea UPD2: лихо просрался с документацией. Для тех кто ищет: grid->addWidget(имя_виджета, №строки в grid, №столбца в grid) Название: Re: Динамическое создание элементов Отправлено: gil9red от Марта 23, 2018, 11:33 Цитировать НО grid компонует в столбец Цитировать grid->addWidget(newobj); Что написали, то и получили :) Используйте вариант функции с указанием строки и столбца: Код
Название: Re: Динамическое создание элементов Отправлено: Igors от Марта 23, 2018, 15:23 Да, есть совершенно идиотские фразы которые люди почему-то упорно повторяют, напр
Цитировать - мне очень нужны деньги (а кому же они не нужны?) Или вот не хужеЦитировать - у меня нет времени (а у других, значит, на меня есть) ..лихо просрался с документацией. А чего ж Вы, не просравшись, на форум полезли?Название: Re: Динамическое создание элементов Отправлено: deMax от Марта 29, 2018, 09:48 Вообще неплохо по qt книжку прочитать, хоть в qt и замечательная справка, но знания азов уберут множество глупых вопросов. (это не долго)
|