Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
31 / 18 / 5
Регистрация: 30.08.2020
Сообщений: 55
PyQt5

Создание кнопок в цикле с некоторыми отличиями без участия обработчика событий

05.10.2021, 00:34. Показов 2698. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я создаю графический интерфейс с неизвестными заранее размерами. Окно - QWidget, в нем - n QRadioButton, которые я создаю и размещаю при помощи цикла. Все кнопки - некликабельны для пользователя. Есть матрица из 0 и 1, согласно которой кнопку в i строке j столбце надо делать либо закрашенной, либо нет. Вот код с комментариями:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
    def draw(self):
        x = y = 20 # переменные - координаты для расположения
        for i in range(len(self.matrix)): # self.matrix - матрица
            for j in range(len(self.matrix)):
                self.a = QRadioButton(self) # создаю
                self.a.setGeometry(x, y, 20, 20) # настраиваю расположение
                if self.matrix[i][j] == 1: #закрашиваю только в случае, если в матрице на этом месте 1
                    self.a.setChecked(True) # здесь закрашиваю
                self.a.setEnabled(False) # делаю некликабельной
                x += 30 # ниже меняю координаты
            y += 30 
            x = 20
        self.resize(x, y) # меняю размер окна
Результат работы для матрицы ниже во вложениях
Python
1
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
Как вы видите, закрашивается только правая нижняя кнопка, а надо, чтобы все. Я уже пробовал собирать в матрицу получившиеся объекты(думал, что так сохранится), но безрезультатно. Также пробовал подключать обработчик событий и имитировать нажатие на кнопку, но тоже ничего. Подскажите, пожалуйста, как можно реализовать?
Изображения
 
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2021, 00:34
Ответы с готовыми решениями:

Много кнопок и один обработчик событий
Есть ли какой-то способ одним обработчиком событий воздействовать на множество кнопок, находящихся...

PyTelegramBotApi Обработчик кнопок
Здравствуйте, изучаю написание телеграм бота на python. Не могу никак разобраться, как из...

Создание кнопок в цикле с разными параметрами
from tkinter import * root = Tk() def hi(i): print(i) for i in range(10): ...

3
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.10.2021, 09:58
Лучший ответ Сообщение было отмечено pchela_sociofob как решение

Решение

pchela_sociofob, ты вообще понимаешь, в чем смысл RadioButton?
Замени их например на чекбокс и возрадуйся
1
31 / 18 / 5
Регистрация: 30.08.2020
Сообщений: 55
05.10.2021, 13:52  [ТС]
iSmokeJC, смысл в том, что можно выбрать только один вариант? мне казалось, это происходит только при объединении кнопок в группу... спасибо большое за помощь
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.10.2021, 13:57
Цитата Сообщение от pchela_sociofob Посмотреть сообщение
это происходит только при объединении кнопок в группу
Ну у твоих кнопок же в данный момент общий хозяин, по сути - группа.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2021, 13:57
Помогаю со студенческими работами здесь

Проблема с созданием нескольких элементов (кнопок) в цикле
Имею задачу: Разместите на форме кнопки с латинскими буквами, а так же поле для ввода. При нажатии...

Создание кнопок-ссылок в цикле
Всем привет, ребята! Осваиваю Qtpy5 и у меня возникла задача, которую не могу решить( Создала...

clicked.connect для кнопок, созданных в цикле
Добрый день. Начал изучать Python по видеоурокам. Затянуло. Пожалуйста, дополните код. ...

Создание кнопок в цикле
В общем 26 кнопок нужно создать в цикле, не понимаю как сделать, чтобы каждая потом за своё...

Тетя Наташа решила принять участие в предстоящей ярмарке угощений
Тетя Наташа решила принять участие в предстоящей ярмарке угощений. Она приготовила N пирожных весом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru