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

ТЕКСТ на прозрачном фоне

13.10.2020, 13:26. Показов 2356. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел код для отображения текста на прозрачном фоне поверх всех окон!
Всё работает!

Мне надо, чтобы текст периодически менялся.
Для этого я создал функцию, в которую передаю текст.
Но текст не меняется! На экране всё время отображается текст "123"
Помогите подправить код...

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import win32api, win32con, win32gui, win32ui, os, time
 
def SHOW_TEXT(text):
 
    TEXT = text
 
    def main():
 
        hInstance = win32api.GetModuleHandle()
        className = 'MyWindowClassName'
        wndClass                = win32gui.WNDCLASS()
        wndClass.style          = win32con.CS_HREDRAW | win32con.CS_VREDRAW
        wndClass.lpfnWndProc    = wndProc
        wndClass.hInstance      = hInstance
        wndClass.hCursor        = win32gui.LoadCursor(None, win32con.IDC_ARROW)
        wndClass.hbrBackground  = win32gui.GetStockObject(win32con.WHITE_BRUSH)
        wndClass.lpszClassName  = className
        wndClassAtom = win32gui.RegisterClass(wndClass)
        exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
        style = win32con.WS_DISABLED | win32con.WS_POPUP | win32con.WS_VISIBLE
 
        hWindow = win32gui.CreateWindowEx(
            exStyle,
            wndClassAtom,
            None, # WindowName
            style,
            100, # x КООРДИНАТА ТЕКСТА
            350, # y КООРДИНАТА ТЕКСТА
            win32api.GetSystemMetrics(win32con.SM_CXSCREEN), # width
            win32api.GetSystemMetrics(win32con.SM_CYSCREEN), # height
            None, # hWndParent
            None, # hMenu
            hInstance,
            None # lpParam
        )
 
        win32gui.SetLayeredWindowAttributes(hWindow, 0x00ffffff, 255, win32con.LWA_COLORKEY | win32con.LWA_ALPHA)
 
        win32gui.SetWindowPos(hWindow, win32con.HWND_TOPMOST, 0, 0, 0, 0,
            win32con.SWP_NOACTIVATE | win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_SHOWWINDOW)
 
        win32gui.PumpMessages()
 
    def wndProc( hWnd, message, wParam, lParam):
        if message == win32con.WM_PAINT:
            hdc, paintStruct = win32gui.BeginPaint(hWnd)
 
            dpiScale = win32ui.GetDeviceCaps(hdc, win32con.LOGPIXELSX) / 60.0
            fontSize = 20
 
            lf = win32gui.LOGFONT()
            lf.lfFaceName = "Times New Roman"
            lf.lfHeight = int(round(dpiScale * fontSize))
 
            lf.lfWeight = 300
            hf = win32gui.CreateFontIndirect(lf)
            win32gui.SelectObject(hdc, hf)
            rect = win32gui.GetClientRect(hWnd)
            win32gui.SetTextColor(hdc, win32api.RGB(255, 0, 0))
 
            win32gui.DrawText(
                hdc,
                TEXT,
                -1,
                rect,
                win32con.DT_CENTER | win32con.DT_NOCLIP | win32con.DT_SINGLELINE | win32con.DT_VCENTER
            )
            win32gui.EndPaint(hWnd, paintStruct)
 
            return 0
 
        elif message == win32con.WM_DESTROY:
            print('Closing the window.')
            win32gui.PostQuitMessage(0)
            return 0
 
        else:
            return win32gui.DefWindowProc(hWnd, message, wParam, lParam)
 
    main()
 
if __name__ == '__main__':
 
    SHOW_TEXT("123")
 
    time.sleep(1)
 
    SHOW_TEXT("456")
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.10.2020, 13:26
Ответы с готовыми решениями:

Текст метки на прозрачном фоне
Всем день добрый. Кто знает оптимальный способ, как сделать, чтобы текст в QLabel выводился на прозрачном фоне? Метки у меня рисуются...

Текст с прокруткой на прозрачном фоне....
Можно ли сделать компонент Memo прозрачным??...Или привязать к Label ScrollBar???..... В общем, мне нужно, чтобы был большой текст...без...

Сделать непрозрачный текст на прозрачном фоне
<div class="niz"> Текст <br>Текст<br>Текст </div> .niz{ background-color: #28a9e0; opacity:...

1
 Аватар для kapbepucm
1567 / 740 / 321
Регистрация: 02.05.2020
Сообщений: 1,659
14.10.2020, 16:00
Цитата Сообщение от Karllson Посмотреть сообщение
Но текст не меняется! На экране всё время отображается текст "123"
а вы уверены, что код дальше строки 84 будет выполняться?

Добавлено через 3 минуты
если точнее, дальше строки 42 win32gui.PumpMessages()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2020, 16:00
Помогаю со студенческими работами здесь

Декоративный элемент на прозрачном фоне
привет! необходимо сверстать блок с рамкой и цифрой-картинкой. вся проблема в том, если рамку сделать версткой, а цифру наложить...

Корявые символы на прозрачном фоне.
Имеется форма, допустим, белого цвета. На форме установлен Label с прозрачным фоном. В свойстве Form.TransparencyKey тоже ставим белый...

Глюки на прозрачном фоне кнопки
Добрый день! Создал кнопку на форме, вставил в неё картинку и сделал её фон прозрачным, при наведении на кнопку фон начинает глючить, как...

скругленные уголки на прозрачном фоне
Существует множество способов создания скругленных уголков для блоков, но практически все они имеют один минус - по кройней мере один фон...

Рисование на прозрачном фоне формы
Приветствую. Возникла проблема с рисованием на прозрачном фоне формы. Создал простую форму. Сделал её фон прозрачным посредством...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru