Код кажется мне понятным и удобным для использования.Я понимаю, что в этом фрагменте кода происходит много вещей.Почему бы вам не попробовать сделать это по одному шагу за раз?Это моя рекомендация.
Может быть несколько более простой способ сделать это, в зависимости от ваших конкретных обстоятельств.Например, вы можете попробовать расположить QLabels в сетке и указать смайлики, поместив их в метки.Вам нужно будет немного поработать, чтобы программа правильно реагировала на нажатие и все такое, но это сработало бы.Эта идея не может быть хорошей, так как я не проверял ее на практике.Я не использовал Qt некоторое время, поэтому я мог что-то пропустить.В любом случае, это может или не может быть подходящим для вас.Например, этикетки могут стать слишком большими.Насколько я могу судить, код, на который вы ссылаетесь, имеет больший контроль над процессом.
Надеюсь, это поможет.