2010-03-09 7 views
3

lorsque j'ajoute le widget à la fenêtre principale, par défaut l'élément de menu d'action sera présent, comment faire pour supprimer cela?QT Comment supprimer l'élément de menu d'action

menuBar()->setVisible(false); 

verAction = new QAction(tr("&Version"),this); 
menuBar()->addAction(verAction); 
connect(verAction, SIGNAL(triggered()),this, SLOT(displayVersion())); 

displayAction = new QAction(tr("&Display"),this); 
menuBar()->addAction(displayAction); 


connect(displayAction, SIGNAL(triggered()),this, SLOT(displayMessage())); 

exitAction = new QAction(tr("&Exit"),this); 
menuBar()->addAction(exitAction); 
connect(exitAction, SIGNAL(triggered()),this, SLOT(close())); 

Merci

Répondre

2

Si vous voulez cacher un QAction et l'afficher lorsque vous en avez besoin, vous pouvez utiliser la fonction setVisible.

Si vous souhaitez supprimer la barre de menus de QMainWindow, vous pouvez utiliser le préprocesseur QT_NO_MENUBAR pour supprimer toutes les utilisations d'un QMenuBar. Si vous n'utilisez pas les fonctionnalités fournies par QMainWindow, vous pouvez peut-être utiliser un simple QWidget comme fenêtre principale dans votre application. [Edit] Si vous voulez masquer QActions à l'exécution, vous les trouverez en tant que membre de l'interface utilisateur de QMainWindow. Par exemple, si vous avez un nom QAction actionTest, vous aurez accès comme ça: this->ui->actionTest->setVisible(false);

+0

Ok .. comment accéder à l'élément de menu qaction? Je vais recevoir la liste des actions du menu. si je passe en revue cela ne donne pas seulement le menu Action .. alors que faire? – Naruto

+1

Que voulez-vous exactement faire? –

+0

Je veux supprimer le menu Qaction de menubar .. donc y a-t-il un moyen? pour rendre visible-visible nous devons avoir accès pour cela .. nous ne sommes pas seulement comment faire? – Naruto

2

Je sais ce que tu veux dire ... vous voulez masquer le menu contextuel DEFAULT « Actions » ....

Vous peut le faire dans la section Design (pas dans le code).

Ensuite, vous voyez votre objet-Stack sur le côté droit comme

  • MainWindow QMainWindow
    • centralWidget QWidget
      • webView QWebView

Maintenant, allez dans l'éditeur de propriétés ci-dessous ... recherchez "contextMenuPolicy" et remplacez-le "DefaultContextMenu" par "NoContextMenu" pour chaque composant si nécessaire.

2

Pour supprimer le menu contextuel par défaut avec l'étiquette « Actions » le code suivant peut être utilisé:

// Remove context menu from the all widgets. 
QWidgetList widgets = QApplication::allWidgets(); 
QWidget* w=0; 
foreach(w,widgets) { 
    w->setContextMenuPolicy(Qt::NoContextMenu); 
} 

Essentiellement, le même que la réponse de Joel, mais la version du code :)

(Code provenant de QFriendFeed exemple de forum.nokia.com)