The main part of your question seems to be:
The problem is that I can't seem to reference self.ABlob in the way I am trying - it returns type None
When you do x=ClassA(...).func(...)
, x contains the result of the call to func
. Thus, when you do self.ABlob = ttk.Button(...).grid(...)
, what is stored in self.ABlob
is None
, because that is what is returned by the grid function.
If you want to store a reference to the button you will need to create the button and then call grid as two separate steps:
self.ABlob = ttk.Button(...)
self.ABlob.grid(...)
Personally I see this as a best practice, especially when you're using grid. By putting all of your grid statements in a block it becomes easier to visualize the layout and spot bugs:
self.ABlob.grid(row=3, column=2)
self.BBlob.grid(row=3, column=3)
self.CBlob.grid(row=3, column=4)