Как сделать zenity “ переходный родительский ” предупреждение постоянно исчезает

Я попытался использовать эту страницу в вики Ubuntu для обновления alsa, и это сработало для меня.

Следуя этим инструкциям, вы получите последний драйвер ALSA, но только для внутренних звуковых карт «HDA Intel» ( если ваш компьютер с 2005 года или новее, у вас почти наверняка есть звуковая карта «HDA Intel» для работы с внутренними динамиками, разъемами для наушников и микрофонами). Звук USB или Bluetooth не будет затронут. Убедитесь, что пакет dkms установлен, выполнив команду:
sudo apt-get install dkms
Перейти к этой странице. Вы найдете таблицу под заголовком «Пакеты». Найдите столбец «Серии» и найдите пакет, соответствующий вашей серии дистрибутивов (Precise, Trusty, Xenial и т. Д.). В случае с Trusty вы найдете несколько пакетов. Затем проверьте, какое ядро ​​вы используете с командой «uname -r». Если выход uname -r начинается с ... 3.13 - используйте oem-audio-hda-daily-dkms 3.16 - используйте oem-audio-hda-daily-lts-utopic-dkms package 3.19 - используйте oem-audio -hda-daily-lts-vivid-dkms package 4.2 - используйте пакет oem-audio-hda-daily-lts-wily-dkms Нажмите стрелку (влево), чтобы развернуть строку выбранного пакета. В новом разделе «Файлы пакетов» щелкните файл, заканчивающийся на .deb, загрузите и установите его: вы можете сделать это, выбрав «Открыть», который приведет вас в Центр программного обеспечения Ubuntu, где вы можете нажать «Установить», или Сохраните файл на диск, откройте окно терминала, перейдите в правый каталог и выполните sudo dpkg -i <file name> Перезагрузка.
1
задан 11 September 2017 в 10:53

1 ответ

В принципе, нет другого способа, кроме перенаправления stderr на /dev/null. Основная причина заключается в том, что для Gtk требуются диалоговые окна (это то, что на самом деле есть zenity), чтобы иметь родительское окно приложения. Это то же самое происходит, если вы создаете диалоговое окно GUI с нуля в c или python.

Таким образом, единственный «реальный» способ состоит в том, чтобы разработчики Gtk фактически позволяли диалоговым окнам стоять самостоятельно или разработчикам zenity, чтобы отключить эти предупреждения из своего исходного кода. В противном случае, ваш единственный вариант - постоянно добавлять 2>/dev/null в любую команду zenity. Конечно, вы всегда можете сделать псевдоним или функцию-обертку, которая сделает это для вас, что-то вроде этого:

zenity(){
    /usr/bin/zenity "$@" 2>/dev/null
}

Это, однако, может иметь проблемы с цитированием и передачей аргументов, но для большая часть должна работать. Если вы работаете на Python или на другом языке, который может фактически обрабатывать Gtk, вы можете заваривать свои собственные всплывающие диалоги со скрытыми родительскими окнами, что сопряжено с затратами сложности и обучения тому, как создавать эти вещи. Но опять же, реальный путь для разработчиков zenity действительно исправить это или разработчиков Gtk, чтобы признать необходимость в автономных диалоговых окнах.

5
ответ дан 23 May 2018 в 00:16
  • 1
    Изучая вопрос, который я читал, разработчики работали над тем, чтобы это предупреждение исчезло. Когда не было адресовано, хотя .... – WinEunuuchs2Unix 26 March 2017 в 05:41
  • 2
    Это может иметь проблемы с цитированием, тем более, что вы использовали несогласованные кавычки. – Nic Hartley 26 March 2017 в 09:58
  • 3
    @QPaysTaxes ooops, спасибо, что поймали несогласованные цитаты. Набирал без очков – Sergiy Kolodyazhnyy 26 March 2017 в 10:33

Другие вопросы по тегам:

Похожие вопросы: