PyQt - Widget QToolBar
UN QToolBar widget es un panel móvil que consta de botones de texto, botones con iconos u otros widgets.
Suele estar situado en una barra horizontal debajo de la barra de menú, aunque puede ser flotante. Algunos métodos útiles de la clase QToolBar son los siguientes:
No Señor. | Métodos y descripción |
---|---|
1 | addAction() Agrega botones de herramientas con texto o ícono |
2 | addSeperator() Muestra botones de herramientas en grupos |
3 | addWidget() Agrega controles distintos al botón en la barra de herramientas |
4 | addToolBar() El método de clase QMainWindow agrega una nueva barra de herramientas |
5 | setMovable() La barra de herramientas se vuelve móvil |
6 | setOrientation() La orientación de la barra de herramientas se establece en Qt.Horizontal o Qt.vertical |
Siempre que se hace clic en un botón de la barra de herramientas, se emite la señal ActionTriggered (). Además, envía una referencia al objeto QAction asociado con el evento a la función conectada.
Se agrega una barra de herramientas Archivo en el área de la barra de herramientas llamando al método addToolBar ().
tb = self.addToolBar("File")
Aunque se pueden agregar botones de herramientas con leyendas de texto, una barra de herramientas generalmente contiene botones gráficos. Se agrega un objeto QAction con un icono y un nombre a la barra de herramientas.
new = QAction(QIcon("new.bmp"),"new",self)
tb.addAction(new)
Del mismo modo, se agregan botones para abrir y guardar.
Finalmente, la señal actionTriggered () está conectada a una función de ranura toolbtnpressed ()
tb.actionTriggered[QAction].connect(self.toolbtnpressed)
El código completo para ejecutar el ejemplo es el siguiente:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class tooldemo(QMainWindow):
def __init__(self, parent = None):
super(tooldemo, self).__init__(parent)
layout = QVBoxLayout()
tb = self.addToolBar("File")
new = QAction(QIcon("new.bmp"),"new",self)
tb.addAction(new)
open = QAction(QIcon("open.bmp"),"open",self)
tb.addAction(open)
save = QAction(QIcon("save.bmp"),"save",self)
tb.addAction(save)
tb.actionTriggered[QAction].connect(self.toolbtnpressed)
self.setLayout(layout)
self.setWindowTitle("toolbar demo")
def toolbtnpressed(self,a):
print "pressed tool button is",a.text()
def main():
app = QApplication(sys.argv)
ex = tooldemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
El código anterior produce la siguiente salida: