Home C - C++ QWidget a dimensione fissa
QWidget a dimensione fissa
Programmazione & Co.
Mercoledì 14 Dicembre 2011 10:59

Abituato a Swing ci sono rimasto un pò male nel vedere che QWidget a dimensione fissa non ha una funzione per impostare che la finestra non sia ridimensionabile.

Ovviamente con un piccolo sotterfugio si può ovviare al problema.

Basta impostare la dimensione, la minimumSize e la maximumSize alla stessa dimensione.

Quindi se si usa l'editor grafico possiamo modificare le relative proprietà, o modificare il file .ui in formato XML:

<widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>703</width>
    <height>700</height>
   </rect>
  </property>
  <property name="minimumSize">
   <size>
    <width>703</width>
    <height>700</height>
   </size>
  </property>
  <property name="maximumSize">
   <size>
    <width>703</width>
    <height>700</height>
   </size>
</property>
.....

Se invece vogliamo fare tutto da codice possiamo fare una cosa del genere:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "scan.h"
#include <QMessageBox>
#include <QString>
#include "aboutwindow.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->size(QSize);
    this->minimumSize(QSize);
    this->maximumSize(QSize);
}
MainWindow::~MainWindow()
{
    delete ui;
}

Abbiamo le funzioni size(), minimumSize() e maximumSize() alle quali dobbiamo passare un valore QSize.

In questo modoo la nostra finestra non sarà ridimensionabile dall'utente.

Ultimo aggiornamento Mercoledì 14 Dicembre 2011 11:12