2015-09-29 3 views
0

У меня есть задание в школе, в котором я не могу обойтись, и я застрял.Убивать программу Python с помощью ctrl C

присваивания построить программу, которая infinitly извергает случайные числа в MessageBox EasyGUI (Да я знаю EasyGUI старого XD)

это мой исходный код:

импорт easygui

while True: 
    easygui.msgbox(random.randint(-100, 100)) 

Проблема в том, что когда я запускаю это, я не могу выбраться из него. Мне нужно разрешить использовать ctrl + C, но это не работает. Я что-то упускаю?

Спасибо заранее!

+0

Я бы использовал Python 'signal.signal', чтобы назначить мой собственный обработчик Ctrl + C, где мой обработчик изменит значение, которое я тестирую в' а от True до False. –

+0

Вам действительно нужно использовать easygui? –

+0

Да, я должен. сказал моему учителю, что он устарел с 2013 года, но он хочет, чтобы мы придерживались его. Все уже потеряли веру в этого учителя xD. – Jake

ответ

0

с использованием signalhandlers не кажется тривиальной задачей, когда дело доходит до easygui, если вы можете работать с отказа от курения при x нажатии вы можете сделать следующее:

while True: 
    e = easygui.msgbox(random.randint(-100, 100)) 
    if e is None: 
     break 

e будет либо строкой "OK" если вы нажмете ok или None, если нажата кнопка x, поэтому, возможно, это самый простой способ выйти из нее и закончить цикл.

+0

Это сработало для меня! не с ctrl C, а просто с нормальным закрытием – Jake

0

ваша проблема в том, что вы не можете использовать Ctrl-C при использовании easygui, вы можете использовать Ctrl-C при использовании холостых, например, вы можете сделать

for i in range(1, 10000000000000000000000000000000000000000000000): 
    print(i) 

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

 Смежные вопросы

  • Нет связанных вопросов^_^