web-dev-qa-db-fra.com

Comment attribuer le rappel lorsque l'utilisateur redimensionne un QMainWindow?

Ni je pourrais trouver un schéma de type didacticiel pour un événement de redimensionnement sur Qmainwindow, ni une option pour ajouter un événement de redimensionnement dans le menu déroulant de la fenêtre de conception QT.

Je suis nouveau à qt. J'aimerais écrire une fonction d'emplacement pour un événement QMainWindow redize. Y a-t-il un tel événement? Comment puis-je faire ceci?

16
Barney

Il y a un événement de redimensionnement . Afin d'effectuer une manipulation personnalisée de l'événement, vous devez créer votre propre gestionnaire d'événements de redimensionnement. Dans votre cas, vous auriez besoin de créer une classe qui dérive de QMainWindow et de réapprovisionnement le resizeEvent Fonction. Votre code ressemblerait à ceci:

void MyMainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here.
}

Le EXEMPLE SCRIBBLE QT a également un exemple de remplacement de l'événement de redimensionnement (mais pas sur la fenêtre principale).

30
RA.

Cela fonctionne dans Qt5 avec moi f.e. Pour redimensionner l'icône dans un QTableWidget:

mainWindow.h
...
private slots:
void resizeEvent(QResizeEvent*);
...

mainWindow.cpp
...
void mainWindow::resizeEvent(QResizeEvent*)
{
    tableWidget->setIconSize(QSize(tableWidget->size()/7)); //7 or whatever number you need it to get the full icon size
}
1
Ivanovic