![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: novembre 2007
Localisation: Villeurbanne
Âge: 24
Messages: 207
|
Bonjour,
pour expliquer ma question, deux bons dessins : Actuellement, j'ai ça : ![]() Je voudrais enlever la barre de titre, là ou y'a écrit Citation:
![]() comment faire ? |
|
|
|
|
|
|
#3 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2007
Localisation: Villeurbanne
Âge: 24
Messages: 207
|
Merci de ta réponse, malheureusement, je me suis un peu mal expliqué, je veux pas vraiment enlever la barre d'outils, je veux la customiser, tout comme on customise la barre de titre d'un dockwidget, en gros, remplacer le degradé bleau foncé vers bleu clair par autre chose par exemple, changer les boutons ....
Pour donner un exemple, il faut télécharger le naviguateur Mac Safari pour PC. Suivant la situation, on peut apercevoir le subterfuge :
|
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: mars 2004
Localisation: rennes
Âge: 26
Messages: 4 400
|
tu peut utiliser setMask pour définir la zone de ta fenêtre et ainsi virer la barre de titre
http://doc.trolltech.com/4.4/qwidget.html#setMask Aprés tu peut y mettre la tiennes. Voici un exemple. http://doc.trolltech.com/4.4/widgets-shapedclock.html Si tu veut faire de l'alpha, il n'y as rien de portable dans Qt. Il existe un projet qui le fait sous windows. Si ca t'intéresse, fait une recherche sur le forum
__________________
Qt need you!! Intéressé pour participer à la FAQ, Tutoriels ou Traduction des tuto Qt? n'hésitez pas à m'envoyer un MP |
|
|
|
|
|
#5 (permalink) |
![]() Date d'inscription: mars 2004
Localisation: rennes
Âge: 26
Messages: 4 400
|
en faite c'est le flag Qt::FramelessWindowHint qui permet de virer le décore
.
__________________
Qt need you!! Intéressé pour participer à la FAQ, Tutoriels ou Traduction des tuto Qt? n'hésitez pas à m'envoyer un MP |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: juillet 2004
Messages: 359
|
Tu ne peux pas personnaliser le gestionnaire de fenêtre autrement qu'en le simulant via tes propres éléments graphiques. En effet, le gestionnaire de fenêtre est géré par le système d'exploitation, et pas par Qt.
Par contre, tu peux faire une fenêtre sans bordure, qui possède une zone permettant de la déplacer, un bouton pour minimiser, un bouton pour maximiser, etc. Pour ce qui est de la gestion du redimensionnement, il va falloir que tu regénères à chaque fois une image de la taille voulue en mémoire afin de l'appliquer en masque sur ta fenêtre ( vu le contexte ) |
|
|
|
|
|
#7 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: novembre 2007
Localisation: Villeurbanne
Âge: 24
Messages: 207
|
Citation:
J'avais réussi à faire ce que je voulais y'a un moment avec Borland C++ builder mais j'avais tout redessiné et la fenêtre n'était plus une vraie fenêtre mais une fenêtre sans titre et sans boutons. Je pensais qu'avec Qt y'aurais un moyen pour feinter le systeme qui gere les fenetres ! |
|
|
|
|
|
|
#8 (permalink) | |
![]() Date d'inscription: juillet 2004
Messages: 359
|
Citation:
Pour ce qui est des boutons de fermeture, etc... tu associes le slot close() au signal clicked() par exemple. Pour ce qui est de la partie déplacement, tu détectes le clique sur la zone correspondant à la barre de titre et lors du déplacement, tu déplaces ta fenêtre. Je pense que tous les systèmes utilisent ça. ( Live Messenger, iTunes ) Par contre, tu as intérêt de bien optimiser. Bon courage pour la suite. |
|
|
|
|
|
|
#9 (permalink) |
![]() Date d'inscription: mars 2004
Localisation: rennes
Âge: 26
Messages: 4 400
|
ma version :
1- tu créé un widget qui contient ta bar de titre avec les evenement associé et une zone avec un layout (pour y mettre ce que tu veut) 2- sur cette widget tu applique le flag Qt::FramelessWindowHint.
__________________
Qt need you!! Intéressé pour participer à la FAQ, Tutoriels ou Traduction des tuto Qt? n'hésitez pas à m'envoyer un MP |
|
|
|
|
|
#10 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: novembre 2007
Localisation: Villeurbanne
Âge: 24
Messages: 207
|
Citation:
|
|
|
|
|
|
|
#12 (permalink) | |
![]() Date d'inscription: juillet 2004
Messages: 359
|
Citation:
|
|
|
|
|
|
|
#13 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: novembre 2007
Localisation: Villeurbanne
Âge: 24
Messages: 207
|
Citation:
Tu voudrais que dans ce widget, je dessine un autre widget (avec des boutons) qui serait ma barre de titre, que je relie les signaux de ces boutons aux slots appropriés de la fenetre conteneuse (qui n'a pas de bordures) et que j'ajoute un layout pour le reste ? Mais dans ce cas, comment je mets mes menus, ma barre d'outils et tout le reste ? Faudrait que ça soit tout 'hand-coded' car depuis Qt Designer je ne peux pas ajouter de QStatusBar ni de QMenu ... |
|
|
|
|
|
|
#15 (permalink) | |
![]() Date d'inscription: mars 2004
Localisation: rennes
Âge: 26
Messages: 4 400
|
je me suis amusé pour voir
![]() Code :
#include <QtGui> class myWindows : public QWidget { Q_OBJECT public : myWindows() :QWidget(0,Qt::FramelessWindowHint) { resize(800,600); m_gL = new QVBoxLayout; m_gL->setMargin(2); m_gL->setSpacing(2); QWidget * bar_Titre = new QWidget; //creation de la bar de titre bar_Titre->setFixedHeight(20); { QHBoxLayout * l = new QHBoxLayout; l->setMargin(0); l->setSpacing(2); l->addWidget(new QLabel ("ma bar de titre"),Qt::AlignLeft); l->addSpacing(100); QPushButton * but =new QPushButton("+"); but->setFixedSize(18,18); connect(but,SIGNAL(clicked()),this,SLOT(maximiser())); l->addWidget(but,Qt::AlignRight); but =new QPushButton("x"); but->setFixedSize(18,18); l->addWidget(but,Qt::AlignRight); connect(but,SIGNAL(clicked()),this,SLOT(close())); bar_Titre->setLayout(l); QString style ="QWidget {" " background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0," " stop: 0 #00FF00, stop: 1 #FFFFFF);" "}"; bar_Titre->setStyleSheet(style); } m_gL->addWidget(bar_Titre); setLayout(m_gL); } void addWidget(QWidget *w) { m_gL->addWidget(w); } protected : //gestion de la souris pour bouger la fenetre void mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { dragPosition = event->globalPos() - frameGeometry().topLeft(); event->accept(); } } void mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton) { move(event->globalPos() - dragPosition); event->accept(); } } private slots : //slot pour minimiser/maximiser void maximiser() { if (isMaximized ()) showNormal(); else showMaximized(); } private : QVBoxLayout * m_gL; QPoint dragPosition; }; #include "main.moc" int main(int argc, char *argv[]) { QApplication app(argc,argv); myWindows w; QListView * lw = new QListView; { QStringList list; list<<"essai 1"<<"esssai 2"<<"blablabla"<<"aze"<<"azzddz"; lw->setModel(new QStringListModel(list)); } QMainWindow * mainWindow = new QMainWindow; { QToolBar * toolBar = new QToolBar; toolBar->addAction("aze"); toolBar->addAction("azer"); mainWindow->addToolBar(toolBar); mainWindow->setCentralWidget(lw); } w.addWidget(mainWindow); w.show(); return app.exec(); } Citation:
SInon y as ceci http://www.qt-apps.org/content/show....?content=67309 mais je sais pas si ca correspond
__________________
Qt need you!! Intéressé pour participer à la FAQ, Tutoriels ou Traduction des tuto Qt? n'hésitez pas à m'envoyer un MP Dernière modification par Mongaulois ; 13/08/2008 à 19h14 |
|
|
|
|
|
![]() |
![]() |
||
[Visuel] Comment enlever la barre de titre de windows ?
|
||
| Outils de la discussion | |
|
|