Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка событий клавиатуры, Задержка после первого нажатия на клавиш 
:(
    Опции темы
Borundel
  Дата 26.1.2019, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.1.2019

Репутация: нет
Всего: нет



Мне нужно как-то убрать задержку после первого нажатия на клавишу, но я не знаю как, помогите пожалуйста smile 

Выделить всёРазвернуть код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:
89:
90:
91:
92:
93:
94:
95:
96:
import wx
import threading
import time
class GameWindow(wx.App):
    class __DrawThread(threading.Thread):
        def __init__(self, redraw_win):
            threading.Thread.__init__(self)
            self.stopped = False
            self.redraw_win = redraw_win
            self.start()
        def run(self):
            while self.stopped is not True:
                self.repaint()
                time.sleep(0.01)
        def repaint(self):
            dc = wx.ClientDC(self.redraw_win)
            dc.Clear()
    class __ComponentUpdateThread(threading.Thread):
        def __init__(self):
            threading.Thread.__init__(self)
            self.stopped = False
            self.start()
        def run(self):
            pass
    class __EvtHandlerThread(threading.Thread):
        def __init__(self, panel):
            threading.Thread.__init__(self)
            self.stopped = False
            self.panel = panel
            self.start()
        def run(self):
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)
        def on_keyboard_down(self, e):
            print (e.GetKeyCode())
            self.panel.Unbind(wx.EVT_KEY_DOWN)
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)
    def __init__(self, title="Lucky Project", size=(600600)):
        wx.App.__init__(self)
        self.__frame__ = wx.Frame(parent=None, title=title, size=size)
        self.__panel__ = wx.Panel(parent=self.__frame__)
        self.__frame__.Bind(wx.EVT_CLOSE, self.__on_close)
        self.__frame__.Center()
        self.__frame__.Show()
        self.__repaint_thread = self.__DrawThread(self.__panel__)
        self.__component_update_thread = self.__ComponentUpdateThread()
        self.__evt_handler_thread = self.__EvtHandlerThread(self.__panel__)
        self.MainLoop()
    def __on_close(self, e):
        self.__frame__.Destroy()
        self.__repaint_thread.stopped = True
        self.__component_update_thread.stopped = True
        self.__evt_handler_thread.stopped = True
win = GameWindow()

PM MAIL   Вверх
Romikgy
Дата 28.1.2019, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



Цитата(Borundel @  26.1.2019,  19:50 Найти цитируемый пост)
        def run(self):
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)
        def on_keyboard_down(self, e):
            print (e.GetKeyCode())
            self.panel.Unbind(wx.EVT_KEY_DOWN)
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)

для чего это все???



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Borundel
Дата 28.1.2019, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.1.2019

Репутация: нет
Всего: нет



Цитата(Romikgy @ 28.1.2019,  10:13)
Цитата(Borundel @  26.1.2019,  19:50 Найти цитируемый пост)
        def run(self):
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)
        def on_keyboard_down(self, e):
            print (e.GetKeyCode())
            self.panel.Unbind(wx.EVT_KEY_DOWN)
            self.panel.Bind(wx.EVT_KEY_DOWN, self.on_keyboard_down)

для чего это все???

Это я пытался что-то сделать smile

PM MAIL   Вверх
Romikgy
Дата 28.1.2019, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



так я и спрашиваю что пытались ? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Borundel
Дата 29.1.2019, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.1.2019

Репутация: нет
Всего: нет



Я же говорил, мне нужно как-то убрать задержку после первого нажатия клавиши, это и пытался
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Разработка GUI | Следующая тема »


 




[ Время генерации скрипта: 0.1029 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.