[Solved] Keyboard

How can I read non specific keyboard input?

I know I can use something like: self.accept(“a” , self.printInput)

printInput would then only get called if “a” was pressed, but I would like to get printInput called for every possible key. How can I do that? :frowning:

Try this:

# -*- coding: utf-8 -*-
import direct.directbase.DirectStart
from direct.showbase.DirectObject import DirectObject
from pandac.PandaModules import ButtonThrower
from pandac.PandaModules import TextNode
import sys

class Keys(DirectObject):
    def __init__(self):
        #events
        base.buttonThrowers[0].node().setButtonDownEvent('bdown')
        base.buttonThrowers[0].node().setButtonUpEvent('bup')            
        
        #accept all keys
        self.accept('bdown', self.buttons,['pressed'])
        self.accept('bup', self.buttons,['released'])
        
        #text
        self.mes=TextNode('mes')
        self.mes.setAlign(TextNode.ACenter)
        self.mes.setText('press esc to exit')        
        self.textnode=aspect2d.attachNewNode(self.mes)
        self.textnode.setScale(0.1)
        
        
    def buttons(self,tag,but):
        self.mes.setText(but+' : '+tag)
        if but=='escape'and tag:
            sys.exit()
            
        
k=Keys()
run()
        

That’s what I was looking for, nice.

Thanks very much enc! :slight_smile:

is there a c++ version of this ?