QWidget a dimensione fissa

Mattepuffo's logo
QWidget a dimensione fissa

QWidget a dimensione fissa

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.


Condividi

Commentami!