You can do this in Traits:

    from traits.api import HasTraits, Range
    from traitsui.api import TextEditor

    class Foo(HasTraits):

        # tell traits to use a TextEditor for this trait instead of a slider
        x = Range(0, 100, editor=TextEditor)

        # my intent was something like this
        # x = Range(0, 100, enaml_editor=IntEditor)
    
    if __name__ == '__main__':
        f = Foo()
        f.edit_traits()