Вызов sg.popup при запуске SystemTray (psgtray)Python

Программы на Python
Anonymous
Вызов sg.popup при запуске SystemTray (psgtray)

Сообщение Anonymous »


импортировать PySimpleGUI как sg из psgtray импортировать SystemTray импортировать pyaudio импорт потоков защита findAudioDevices(): р = pyaudio.PyAudio() информация = p.get_host_api_info_by_index(0) numdevices = info.get('deviceCount') информация_устройства = "" для я в диапазоне (0, numdevices): if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0: device_info += f"Идентификатор устройства ввода {i} - {p.get_device_info_by_host_api_device_index(0, i).get('name')}\n" sg.popup('Аудиоустройства', device_info) # Настройка PySimpleGUI Menu_def = ['Файл', ['Показать аудиоустройства', 'Открыть конфигурацию', 'Выход']] подсказка = 'Подсказка' # Инициализируем лоток лоток = SystemTray(menu=menu_def, single_click_events=False, подсказка=подсказка, значок=r'Icon.png') Tray.show_message('Переключение звука', 'Переключение звука началось!') # Цикл событий пока правда: Menu_item = лоток.ключ если Menu_item == 'Выход': перерыв elif menu_item == 'Показать аудиоустройства': findAudioDevices() # Вероятно, эту функцию следует изменить для отображения всплывающего окна вместо вывода на консоль elif menu_item == 'Открыть конфигурацию': os.system(f"блокнот {config_path}") лоток.закрыть() приводит к этой ошибке

Произошла ошибка при вызове обработчика сообщения Traceback (последний вызов последний): Файл «C:\Users\willwade\.pyenv\pyenv-win\versions\3.11.4\Lib\site-packages\pystray\_win32.py», строка 398, в _dispatcher вернуть int(icon._message_handlers.get( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «C:\Users\willwade\.pyenv\pyenv-win\versions\3.11.4\Lib\site-packages\pystray\_win32.py», строка 210, в _on_notify дескрипторы[индекс - 1](собственный) Файл «C:\Users\willwade\.pyenv\pyenv-win\versions\3.11.4\Lib\site-packages\pystray\_base.py», строка 308, во внутреннем обратный вызов (сам) Файл «C:\Users\willwade\.pyenv\pyenv-win\versions\3.11.4\Lib\site-packages\pystray\_base.py», строка 434, в __call__ вернуть self._action(значок, я) ^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «C:\Users\willwade\.pyenv\pyenv-win\versions\3.11.4\Lib\site-packages\psgtray\psgtray.py», строка 138, в _on_clicked self.window.write_event_value(self.key, item.text) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: объект «NoneType» не имеет атрибута write_event_value. Похоже, что он игнорирует sg и использует psgtray, но я этого не понимаю. У меня такое ощущение, что это как-то связано с резьбой окна, но я понятия не имею, как это исправить?

Вернуться в «Python»