Название: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 25, 2013, 12:26 Задача. При нажатии на кнопку страны, выводить список регионов страны из бд. Список выводится в QGroupBox в виде QPushButton.
Надо, чтобы при выводе регионов страны, были только видны новые кнопки с регионами соответствующей страны. Код: QGroupBox *groupBoxChoiceRegion = new QGroupBox(dialog); сделал пока так, при нажатии на "страну" в слоте отрабатывает код: Код: QGroupBox *groupBoxChoiceRegion = dialog->findChild<QGroupBox *>("groupBoxChoiceRegion"); получаю список детей QGroupBox и удаляю кнопки pushButton->deleteLater(); затем создаются новые кнопки с новыми регионами определенной страны. вроде работает, но мне не особо нравится решение. есть ли другие варианты решения проблемы и как вообще правильно удалять видимые виджеты? Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 25, 2013, 12:50 немного поменял код, чтобы при повторном нажатии на "страну" кнопки заново не формировались
Код: QObjectList childrensGroupBoxChoiceRegion = groupBoxChoiceRegion->children(); в принципе код делает то, чего я и хотел Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Fregloin от Май 29, 2013, 17:35 немного не понятно. есть ли смысл делать для каждой страны кнопку, или проще создать свою модель и загнать в QTableView/QListView? Не нужно так извращаться.
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 29, 2013, 19:09 вопрос то был как правильно удалять видимые виджеты.
решение Код: QPushButton *pushButton = qobject_cast<QPushButton*>(object); модель нужна же для того, чтобы изменения в бд вносились автоматически при редактировании таблицы? //QTableView/QListView? Не нужно так извращаться. как бы вы сделали такое с помощью QTableView/QListView? Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 29, 2013, 19:10 (Максимум вложений на одно сообщение: 4)
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Странник от Май 30, 2013, 08:18 почему не выводить список регионов списком (QListView) с возможностью поиска по этому самому списку? как вы думаете, пользователю легко и удобно ориентироваться в вашей простыне кнопок и искать нужный ему регион? это и к БД прикручивается удобней и естественней.
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 08:27 да, легко и удобно.
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Авварон от Май 30, 2013, 10:33 Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 10:49 //facepalm
а конкретннее? на последнем скрине видно к чему все это. если вам удобнее ручной поиск по списку, то это ваши проблемы) мне удобнее сделать несколько кликов. Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Bepec от Май 30, 2013, 10:53 Найти среди 50 кнопок нужную сложнее, чем среди 50 позиций списка. Это аксиома :D
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 11:04 вам на сайте тоже было бы удобнее ориентироваться, если бы все ссылки были в виде списка :)
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Странник от Май 30, 2013, 11:15 вам на сайте тоже было бы удобнее ориентироваться, если бы все ссылки были в виде списка :) часто вы на сайте видели меню, в котором полсотни пунктов? Х )Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Bepec от Май 30, 2013, 11:30 Вы зайдите на любой сайт оптопродаж. Там список более 100 пунктов, НО... Но в нём я легко найду то что нужно.
PS и да, заметь - ссылки расположены в виде списка. Часть вертикальный список, часть горизонтальный список. Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 11:32 :) я не вижу никакой проблемы с поиском нужной страны, региона, города, метро в своей реализации. все запросто выбирается в несколько кликов.
хотя, если хотите, можете нарисовать как бы это выглядело в виде списка в вашей реализации. возможно, кому-то это покажется интересным) Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 11:34 // Часть вертикальный список, часть горизонтальный список
у меня примерно так и сделано) Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Bepec от Май 30, 2013, 12:08 У вас квадратно гнездовое насаждение :D
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: kambala от Май 30, 2013, 12:17 предложи бета-тестерам два варианта и спроси какой им больше нравится. то, что на картинке щас — выглядит печально (кнопки даже не в алфавитном порядке).
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Странник от Май 30, 2013, 12:23 предложи бета-тестерам два варианта и спроси какой им больше нравится. то, что на картинке щас — выглядит печально (кнопки даже не в алфавитном порядке). в алфавитном по столбцам, но это мало что меняет. интерфейс для мышкоморов, что сказать.Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 12:30 ценители прекрасного :D
была задача, задача решена. решение меня устраивает. нарисуйте свой вариант, возможно если передо мной встанет такая же задача в будущем, я использую ваш вариант. Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: Странник от Май 30, 2013, 12:32 ценители прекрасного :D просто интересен ваш способ решения задач, вдруг действительно жемчужина и в жизни пригодится. допустим, я знаю, что мне нужна станция метро Баррикадная, город Москва, Российская Федерация, Европа, Евразия, планета Земля, Солнечная система, галактика Млечный путь. мне обязательно проходить все дерево с начала до конца вместо того, чтобы сразу найти эту несчастную Баррикадную? от такой жизни сам на баррикады пойдешь..была задача, задача решена. решение меня устраивает. нарисуйте свой вариант, возможно если передо мной встанет такая же задача в будущем, я использую ваш вариант. Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 12:59 эта задача - одна кнопка в проекте, при нажатию на которую открывается такой диалог. эта опция может быть вообще не использована, либо будет использоваться редко. вы видите проблему там, где ее нет.
Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: GreatSnake от Май 30, 2013, 20:38 вы видите проблему там, где ее нет. Есть правило - коли взялся за GUI - делай всё продуманно и юзабельно независимо от частоты использования.Когда московские станции раскиданы на 4 экрана да ещё в названии каждой в начале стоит м., то складывается впечатление, что автор просто ненавидит будущих пользователей своей поделки :( Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: thechicho от Май 30, 2013, 20:45 скажу вам по секрету, эти станции вряд ли когда-либо будут выбраны. о чем можно было догадаться из контекста последнего моего сообщения.
я уже сказал, нарисуйте ваши варианты и я с удовольствием ознакомлюсь с ними и возможно использую, если опять встанет такая задача. я просто не вижу смысла в ваших сообщениях. мне то какое дело, что вам не нравится :) Название: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: GreatSnake от Май 30, 2013, 20:51 я уже сказал, нарисуйте ваши варианты и я с удовольствием ознакомлюсь с ними и возможно использую, если опять встанет такая задача. даже не смешноНазвание: Re: Удаление динамически создаваемых виджетов (QPushButton) при замене их другими Отправлено: xokc от Май 31, 2013, 08:43 то складывается впечатление, что автор просто ненавидит будущих пользователей своей поделки :( Подозреваю, что это чувство будет взаимным. |