Вот кроссплатформенный способ сделать это. Вы переопределили ваш метод setVisible вашего QMainWindow или QWidget. Таким же образом можно изменить любой флаг окна, который оказывает визуальное влияние на окно.
Причина, по которой это должно быть сделано таким образом, заключается в том, что класс должен иметь спецификации окна, прежде чем он действительно покажет окно.
void setVisible(bool visible)
{
setWindowFlags( windowFlags() & ~Qt::WindowMaximizeButtonHint );
QWidget::setVisible(visible);
}