Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 16.03.2020
Сообщений: 57

Ошибка в цикле for

26.08.2020, 13:31. Показов 1298. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я сделал программу МЕНЮ, в которой с помощью списка можно запускать любую программу.

Но при выборе программы из списка всегда запускаются НОЖНИЦЫ, т. е. последняя программа списка.
Как можно исправить этот код? Я хочу использовать цикл for.
Python
1
2
3
4
5
6
7
8
9
10
menu = QtWidgets.QMenu(parent)
 
name = ["Acrobat","Блокнот","Ножницы"]
path = ['acrobat','notepad','SnippingTool']
 
for i in range(len(name)):
     menu.addAction(QtGui.QIcon(""), name[i], lambda: os.startfile(path[i]))
 
menu.addSeparator()
self.setContextMenu(menu)
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.08.2020, 13:31
Ответы с готовыми решениями:

Ошибка в цикле
Друзья, подскажите пжл, есть простой код: >>> lst >>> for j in range(len(lst)): ... if lst % 7 == 0: ... print(lst) 49 70 ...

Ошибка в цикле
Вот в этом цикле у меня вылетает программа, нормально компилируется в Dеv-C++, но когда запускается цикл - программа виснет. ...

Ошибка в цикле
Доброго времени суток, подскажите пожалуйста в чем ошибка???

3
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
26.08.2020, 14:09
Лучший ответ Сообщение было отмечено Karllson как решение

Решение

Нашел объяснение такой же ошибки для WxPyhon: In wxPython, how do I Bind to separate objects in a loop, including arguments?

И обязательно прочитайте материал, который предлагает автор.

Таким образом, для решения вашей проблемы необходимо вместо кода
Python
1
lambda: os.startfile(path[i])
написать
Python
1
lambda i=i: os.startfile(path[i]))
2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
26.08.2020, 14:11
Цитата Сообщение от Karllson Посмотреть сообщение
Но при выборе программы из списка всегда запускаются НОЖНИЦЫ, т. е. последняя программа списка.
это прекрасно разъяснено у Лутца, но это надо читать матчасть...
1
2 / 2 / 0
Регистрация: 16.03.2020
Сообщений: 57
26.08.2020, 14:42  [ТС]
ioprst, Welemir1, Ребята, благодарю за помощь!!! Благодаря Вам я решил эту задачу!
Я не программист, но по Вашему совету скачаю книги Лутца и попробую разобраться, чтоб в будущем задавать меньше глупых вопросов.

Тема закрыта!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2020, 14:42
Помогаю со студенческими работами здесь

Ошибка в цикле
var a:array of integer; b:array of integer; var i,s,k,sum:integer; begin sum:=0; writeln('введите число'); readln(k); for...

Ошибка в цикле for
Доброго времени суток всем! Хочу: при заданном количестве итераций вывести в цикле значения всех s, у которых последующее значение...

Ошибка в цикле.
Вот сделал программу в турбо паскале, но со временем отложил ее и переустановил виндовс на 64 бит, ну вот турбо паскаль больше не ...

Ошибка в цикле For
Здравствуйте почему на for ошибка. var Form1: TForm1; implementation {$R *.dfm} const N=300; Teta20=10; TetaN0=300;

Ошибка в цикле
Ребята, подскажите в чем косяк? <?php try{ $dsn = "mysql:host=localhost;dbname=uvpz;charset=utf8"; $opt = array( ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru