Je suis en train de construire un petit programme en Qt avec les barres de menu (menuBar) à l'aide de C++ et je voudrais savoir comment gris (eg. désactiver) un élément du menu lorsqu'une variable est activée. Est-il possible?
OriginalL'auteur user1031431 | 2012-02-29
Si vous connaissez un index des correspondants QAction :
P. S. Aussi aimablement invité ci-dessous,
setEnabled(bool)
etsetDisabled(bool)
sont des machines à sous (donctoggle()
), de sorte qu'ils peuvent être connectés à un signal indiquant un besoin de changement de la disponibilité de l'action.setEnabled(bool)
etsetDisabled(bool)
sont des machines à sous (donctoggle()
), de sorte qu'ils peuvent être connectés à un signal indiquant un besoin de changement de la disponibilité de l'action.Merci @LucTouraille!
Si la variable change souvent (plus souvent que le menu est affiché), il peut être judicieux pour l'activer uniquement en réponse à
signal: QMenu::aboutToShow()
; aucun point de changer quelque chose qui est invisible de toute façon.Hahaha, je devais m'assurer que je n'étais pas d'attraper un élément de séparation...lol
J'ai fait la même muet, séparateur....
OriginalL'auteur Tim Kachko
Recherchez l'index de l'action n'est pas forcément pratique. Si vous avez construit l'interface avec QtCreator de l'éditeur de formulaire, puis vous aurez une action pour chaque élément de menu. Leurs noms sont basés sur le texte que vous donner d'abord à l'action. Par exemple, si vous entrer interactivement un élément de menu avec le titre Foo Bar alors une action nommée actionFoo_Bar est créé pour vous. Tapez simplement ui->action dans l'éditeur de code et de regarder ce "nom d'achèvement" QtCreator proposera.
Dans un tel cas, je le considère comme un appel comme ceci:
Vous pouvez même en faire l'élément de menu disparaît avec
OriginalL'auteur user1741137