PyQt - Widget QToolBar
UMA QToolBar widget é um painel móvel que consiste em botões de texto, botões com ícones ou outros widgets.
Geralmente está situado em uma barra horizontal abaixo da barra de menu, embora possa ser flutuante. Alguns métodos úteis da classe QToolBar são os seguintes -
Sr. Não. | Métodos e Descrição |
---|---|
1 | addAction() Adiciona botões de ferramenta com texto ou ícone |
2 | addSeperator() Mostra os botões das ferramentas em grupos |
3 | addWidget() Adiciona outros controles além do botão na barra de ferramentas |
4 | addToolBar() O método da classe QMainWindow adiciona uma nova barra de ferramentas |
5 | setMovable() Barra de ferramentas móvel |
6 | setOrientation() A orientação da barra de ferramentas é definida como Qt.Horizontal ou Qt.vertical |
Sempre que um botão na barra de ferramentas é clicado, o sinal ActionTriggered () é emitido. Além disso, ele envia uma referência ao objeto QAction associado ao evento para a função conectada.
Uma barra de ferramentas Arquivo é adicionada à área da barra de ferramentas chamando o método addToolBar ().
tb = self.addToolBar("File")
Embora botões de ferramentas com legendas de texto possam ser adicionados, uma barra de ferramentas geralmente contém botões gráficos. Um objeto QAction com um ícone e nome é adicionado à barra de ferramentas.
new = QAction(QIcon("new.bmp"),"new",self)
tb.addAction(new)
Da mesma forma, botões para abrir e salvar são adicionados.
Finalmente, o sinal actionTriggered () é conectado a uma função de slot toolbtnpressed ()
tb.actionTriggered[QAction].connect(self.toolbtnpressed)
O código completo para executar o exemplo é o seguinte -
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()
O código acima produz a seguinte saída -