PyQt - Прозрачный фон

Это проблема порта.

  • Перейдите к строке 34 в файле quickstart.py (или там, где написано creds = run_local_server ()).
  • Перейдите к файлу flow.py в пакете google_auth_oauthlib с этой функцией (в VS Code нажмите run_local_server () и нажмите F12 или щелкните правой кнопкой мыши и выберите «Перейти к определению»).

Вы увидите строку 369 (на момент написания этой статьи): self, host='localhost', port=8080,.

Когда я смотрю на netstat, он на самом деле говорит, что этот порт используется, возможно, с сервером Apache, который я никогда не выключал.

Netstat TCP Port 8080, LISTENING

  • Измените значение в файле flow.py в пакете google_auth_oauthlib на 8090, поэтому 369 выглядит как self, host='localhost', port=8090, ,

Я снова запустил скрипт quickstart.py, и появилось окно для аутентификации моей учетной записи Google.

Я выбрал свой аккаунт, и он заработал. Никаких проблем с админом.

Я рад, что смог найти его таким образом, потому что я думал, что порт был выбран каким-то черным ящиком, как это было решено с сервера в Google.

5
задан Max Frai 8 May 2009 в 11:14
поделиться

3 ответа

В дополнение к ответу gs этот FAQ объясняет, почему (до Qt 4.5) вы не можете этого достичь:

FAQ Ссылка:

Нет прямой поддержки частичного прозрачность, где окно прозрачный и виджеты на нем не в Qt.

Помните, самая последняя версия PyQt была создана для Qt 4.4 и поэтому не поддерживает полупрозрачное окно, которое вы хотите. Другой ответ gs о setAutoFillBackground (True) сработал бы, если бы вы установили цвет фона вашего главного окна на что-либо кроме прозрачного.

Также, смотрите документацию для Qt.WA_NoSystemBackground, там сказано, что вы не можете зависеть от эффекта прозрачности, который у вас был до сих пор:

Qt :: WA_NoSystemBackground

Указывает, что виджет не имеет фон, т.е. когда виджет получает события краски, фон не перекрашивается автоматически Примечание: В отличие от WA_OpaquePaintEvent, недавно открытые участки никогда не заполняются фон (например, после показа окно в первый раз пользователь может видеть "до конца", пока приложение обрабатывает события рисования). Это устанавливается / очищается автором виджета.

2
ответ дан 14 December 2019 в 09:00
поделиться

Попробуйте это для своих виджетов:

widget.setAutoFillBackground(True)

Я думаю, вы также можете установить его в Qt Designer.

2
ответ дан 14 December 2019 в 09:00
поделиться

Я только что нашел это :

Создание полупрозрачных окон

Начиная с Qt 4.5, стало возможным создавать окна с полупрозрачным регионы на оконных системах, которые поддерживают композитинг.

Чтобы включить эту функцию на верхнем уровне виджет, установите его Атрибут Qt :: WA_TranslucentBackground с setAttribute () и убедитесь, что его фон окрашен непрозрачные цвета в регионах, которые вы хочу быть частично прозрачным.

PyQt по-прежнему Qt 4.4, возможно, в этом проблема.

3
ответ дан 14 December 2019 в 09:00
поделиться
Другие вопросы по тегам:

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