PyQt5 – Acción Q

QAction: en las aplicaciones PyQt5, se pueden invocar muchos comandos comunes a través de menús, botones de la barra de herramientas y atajos de teclado, ya que el usuario espera que cada comando se realice de la misma manera, independientemente de la interfaz de usuario utilizada, QAction es útil para representar cada comando como una acción. Las acciones se pueden agregar a los menús y las barras de herramientas, y automáticamente las mantendrán sincronizadas. Por ejemplo, en un procesador de texto, si el usuario presiona un botón de la barra de herramientas Negrita, el elemento de menú Negrita se verificará automáticamente. A continuación se muestra cómo se verá una acción dentro de la barra de herramientas 

Sintaxis:

action = QAction(name)

Esta acción se puede agregar a las barras de herramientas o QMenus con la ayuda del método addAction y addActions. A continuación se muestran algunos comandos de uso frecuente con QAction

setCheckable : To make QAction Checkable

setIcon : To add icon to the QAction

setText : To set the display name of the QAction

text : To get the display name of the QAction

setPriority : To set the priority of the action

triggered.connect : To connect an method with it when triggered signal is emitted

Ejemplo: en este ejemplo, crearemos una ventana principal que tiene una barra de herramientas, una etiqueta y una barra de herramientas que consta de QAction, cada una con un método separado conectado, a continuación se muestra la implementación. 

Python3

# importing libraries
from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import * from PyQt5.QtCore import * import sys
 
 
class Window(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        # setting title
        self.setWindowTitle("Python ")
 
        # setting geometry
        self.setGeometry(100, 100, 500, 400)
 
        # calling method
        self.UiComponents()
 
        # showing all the widgets
        self.show()
 
 
 
    # method for components
    def UiComponents(self):
 
        # creating a tool bar
        toolbar = QToolBar(self)
 
        # setting geometry to the tool bar
        toolbar.setGeometry(50, 100, 300, 35)
 
 
        # creating QAction Instances
        action1 = QAction("First Action", self)
        action2 = QAction("Second Action", self)
        action3 = QAction("Third Action", self)
 
        # adding these actions to the tool bar
        toolbar.addAction(action1)
        toolbar.addAction(action2)
        toolbar.addAction(action3)
 
        # creating a label
        label = QLabel("GeeksforGeeks", self)
 
        # setting geometry to the label
        label.setGeometry(100, 150, 200, 50)
 
        # adding triggered action to the first action
        action1.triggered.connect(lambda: label.setText("First Action Triggered"))
 
        # adding triggered action to the second action
        action2.triggered.connect(lambda: label.setText("Second Action Triggered"))
 
        # adding triggered action to the third action
        action3.triggered.connect(lambda: label.setText("Third Action Triggered"))
 
 
 
 
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
# start the app
sys.exit(App.exec())

Producción :

Otro ejemplo En este ejemplo, crearemos un botón de enlace de comando y le agregaremos un menú que tiene QAction, a continuación se muestra la implementación 

Python3

# importing libraries
from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import * from PyQt5.QtCore import * import sys
 
 
class Window(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        # setting title
        self.setWindowTitle("Python ")
 
        # setting geometry
        self.setGeometry(100, 100, 500, 400)
 
        # calling method
        self.UiComponents()
 
        # showing all the widgets
        self.show()
 
        # method for components
 
    def UiComponents(self):
        # creating a command link button
        cl_button = QCommandLinkButton("Press", self)
 
        # setting geometry
        cl_button.setGeometry(150, 100, 150, 60)
 
        # QActions
        action1 = QAction("Geeks", self)
        action2 = QAction("GfG", self)
 
        # making action2 checkable
        action2.setCheckable(True)
 
 
 
        # QMenu
        menu = QMenu()
 
        # adding actions to menu
        menu.addActions([action1, action2])
 
        # setting menu to the button
        cl_button.setMenu(menu)
 
 
        # creating label
        label = QLabel("GeeksforGeeks", self)
 
        # setting label geometry
        label.setGeometry(100, 200, 300, 80)
 
        # making label multiline
        label.setWordWrap(True)
 
        # adding method to the action
        action1.triggered.connect(lambda: label.setText("Action1 is triggered"))
 
        # adding method to the action2 when it get checked
        action2.toggled.connect(lambda: label.setText("Action2 is toggled"))
 
 
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
# start the app
sys.exit(App.exec())

Producción :

 

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *