Svp comment je peux faire disparaitre le topbarre d'une MainWindow??
Version imprimable
Svp comment je peux faire disparaitre le topbarre d'une MainWindow??
plusieurs solutions :
setWindowFlags(Qt::Window | Qt::FramelessWindowHint)
soit à la bourrin showFullScreen();
à mettre dans le constructeur de ta mainwindow
merci c'est resoulu..:king:
mais le problème maintenent comment je peut deplacé le MainWindow avec la sourie??
:roll:
ben tu devra le faire à la main.
tu peut regarder l'exemple de la clock.
Si j'avais fait un truc comme cela
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class BaseWidget : public QWidget { //position dans le repere widget de click gauche QPoint p; public: BaseWidget() :QWidget ( 0, Qt::FramelessWindowHint | Qt::SubWindow //enleve la decoration windows et l'entrée dans la bar de tâche ) { } protected: void mousePressEvent ( QMouseEvent * mouseEvent ) { //sauvegarde du point dans le repère widget lors du click gauche if(mouseEvent->buttons() == Qt::LeftButton) p = mouseEvent->pos(); } void mouseMoveEvent ( QMouseEvent * mouseEvent ) { //repositionne la fênetre en fonction de la postion de la souris if(mouseEvent->buttons() == Qt::LeftButton) move( mouseEvent->globalPos() - p); };
merci ...:D
Il n'y a pas un truc du genre HitTestEvent comme sous Windows?
Sous Windows, ça permettait de spécifier "cette zone-là est comme la barre de titre, donc ça permet de déplacer".
Mais le problème n'est pas de faire le test soi-même, mais de faire en sorte que l'OS tienne compte du résultat plutôt que d'envoyer le mouseMoveEvent au code utilisateur...
Le problème c'est que cla va dépendre de l'os, non?
sinon
http://labs.trolltech.com/blogs/2009...w-by-dragging/
Si les autres OS (et Qt) n'ont pas d'équivalent à WM_NCHITTEST, alors oui, ça dépendra de l'OS.
le principe sous Windows, c'est qu'avant même d'envoyer un événement "mouse move", l'OS envoie un événement "Non-client Hit Test" pour savoir ce qu'il a touché exactement. Selon la réponse, il envoie ou non un message "mouse move", et pareil pour les clics.
Et quelque part dans l'OS, il y a une équivalence HTCAPTION --> déplacement, HTRIGHT --> Redimensionnement bordure droite, etc.
Donc, si on intercepte le message Hit Test et qu'on retourne HTCAPTION pour un certaine zone, cette zone servira à déplacer la fenêtre.