first of all, in resize(), The size is adjusted if it lies outside the range defined by minimumSize() and maximumSize().
It seems that you want a fixed size for your application. You can use (in the constructor):
self.setFixedSize(1450,250)
which basically "Sets both the minimum and maximum sizes of the widget"
I would suggest to set both geometry and size in main:
programwindow.setGeometry(3,30,800,800)
programwindow.setFixedSize(1450,250)