Why is potassium monoxide (K2O) coloured?
Probably as good an explanation as any can be found here.

https://uk.answers.yahoo.com/question/index?qid=20090729062525AA0gZlS

Basically, the electronic structure of an ionic compound like potassium oxide has "valence bands", which are based primarily on the anions (oxide ions), and empty "conduction bands" based on the cations  (potassium ions).  Typically, to excite electrons from the valence band to the conduction band you need to absorb ultraviolet photons and thus you get no color.  But potassium oxide has just a small enough energy gap between valence and conduction bands to allow some electrons to be excited with violet light.  That absorption gives the yellow color.

If we go further down the alkali metal oxides the band gap gets smaller, and more visible light with longer blue/green wavelengths may be absorbed.  Then the color becomes stronger and more reddish.