|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|
PyQt5 Singleton23.06.2020, 22:21. Показов 1773. Ответов 10
Метки нет (Все метки)
Добрый вечер. Столкнулся со следующей проблемой. Есть QTabWidget. В нём есть несколько вкладок. В каждой вкладке один виджет должен повторяться. Это составной виджет, состоящий из кнопки и таблицы. Проблема в том, что виджет должен быть одинаковым везде. То есть в одной из вкладок его заполнили, а в других он должен отображаться с таким же содержанием. Я пришел к выводу, что необходим паттерн Singleton. Я его применил, однако виджет отрисовывается только в одной вкладке, в других наблюдается пустота. Помогите, пожалуйста, решить данную проблему.
0
|
|
| 23.06.2020, 22:21 | |
|
Ответы с готовыми решениями:
10
Создание "Singleton" так, чтобы при повторной инициализации нельзя было измениять атрибуты объекта Collections: singleton/singletonList/singletonMap. Что значит слово singleton? Syntax error: Operator expected, Singleton variables: [RverseList,ReverseList], Singleton variables: [L,N1] |
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|
| 25.06.2020, 14:16 | |
|
При переключении закладок убирать этот виджет из текущей закладки и добавлять на вновь выбранную
1
|
|
|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|
| 25.06.2020, 14:47 [ТС] | |
|
kapbepucm, хм, да, скорее всего такое сработает. Это не сильно увеличит время переключения? Ведь надо делать два дополнительных действия каждый раз - убрать и добавить.
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||
| 25.06.2020, 15:04 | ||
|
Ещё вариант, размещать этот виджет отдельно от QTabWidget (за его пределами). Но это не поможет, если он должен быть гдето в центре.
1
|
||
|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|
| 25.06.2020, 19:26 [ТС] | |
|
kapbepucm, благодарю за ответ. Он состоит их трёх элементов, один из который QTableWidget. Думаю, это не самый оптимальный вариант. А Вы можете пояснить почему так происходит? С точки зрения реализации получается, что виджет добавляется одновременно в две вкладки. И получается, что отрисовывается он только для одной вкладки, для другой просто забивает по какой-то причине.
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||
| 26.06.2020, 09:18 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|
| 26.06.2020, 13:29 [ТС] | |
|
kapbepucm, нет, Ваша реализация понятна, я имел в виду, проблему, которую я описал в начале, почему так происходит, что отображается только в одной вкладке (в которую виджет был вставлен в последний раз), а в других нет. Я так понял, что один и тот же виджет может только один раз встречаться в виде дочернего элемента для другого виджета.
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||
| 26.06.2020, 14:02 | ||
|
емм... я описывал не свою реализацию, а устройство любого QTabWidget
вкладки-контейнеры не связаны друг с ругом- это разные экземпляры QWidget
0
|
||
|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|||
| 26.06.2020, 16:06 [ТС] | |||
|
kapbepucm,
Также добавлю, что нашел другое решение. Не очень эффективное по памяти, но по скорости лучше. Я сделал Singleton не сам виджет, а конкретно модель данных (определил наследника для QAbstractTableModel) для QTableView. Идея не моя, нашел в инете. Если кто-то столкнется с подобной проблемой, может, поможет.
0
|
|||
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||
| 26.06.2020, 21:07 | ||
Сообщение было отмечено DeusOfLearning как решение
Решение
А если этот виджет вообще не связывать с QTabWiget, скажем, отображать всегда поверх него? В том месте (в контейнерах-вкладках), где он должен был бы находится поместить какой нибудь пустой QWidget и синхронизировать их геометрию, например, при изменении рамеров главного окна.
1
|
||
|
2 / 2 / 0
Регистрация: 24.03.2020
Сообщений: 16
|
|||
| 26.06.2020, 21:40 [ТС] | |||
|
kapbepucm,
![]() Благодарю ещё раз за ответы. Ваша последняя идея, наверное, самая лучшая по времени и памяти из тех, что я знаю. Пока оставлю так, как сделал, а на этапе рефакторинга/оптимизации попробую подобное провернуть.
0
|
|||
| 26.06.2020, 21:40 | |
|
Помогаю со студенческими работами здесь
11
Что значит Singleton& operator = ( Singleton& )? Singleton Singleton
Singleton Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|