In diesem Blogeintrag wollen wir die QToolBar
studieren. Die Toolbar ist der meistgenutzte Weg, um Applikationsprogramme zu gestalten und viel genutzte Funktionalität dem Benutzer zur Verfügung zu stellen.
QToolBar
Der QToolBar
können Buttons angefügt werden. Diese können wieder Aktionen zugeordnet werden. Das Verwenden von Icons für die Toolbar ist die gängigere Gestaltungsart.
import sys
from PySide6.QtCore import Qt
from PySide6.QtGui import QAction, QKeySequence, QIcon
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QToolBar
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setMinimumSize(500, 250)
self.setWindowTitle("Cybernetics")
# Main menu bar
self.menu = self.menuBar()
self.menu_file = self.menu.addMenu("&File")
= QAction("&Exit", self, triggered=QApplication.quit)
exit self.menu_file.addAction(exit)
self.menu_edit = self.menu.addMenu("&Edit")
= QAction("&undo", self, triggered=self.print_undo)
undo = QAction("&redo", self, triggered=self.print_redo)
redo self.menu_edit.addAction(undo)
self.menu_edit.addAction(redo)
self.menu_view = self.menu.addMenu("&View")
= QAction("&Search", self, triggered=None)
appearence self.menu_view.addAction(appearence)
self.menu_help = self.menu.addMenu("&Help")
= QAction("&About Qt", self, shortcut = QKeySequence(QKeySequence.HelpContents), triggered=QApplication.aboutQt)
about self.menu_help.addAction(about)
# toolbar
= QToolBar("Toolbar")
toolbar self.addToolBar(toolbar)
= QAction("Add", self)
tb_button_action1 "This adds someting.")
tb_button_action1.setStatusTip(connect(self.onDummyClick)
tb_button_action1.triggered.= QAction("Copy", self)
tb_button_action2 "This copies something.")
tb_button_action2.setStatusTip(connect(self.onDummyClick)
tb_button_action2.triggered.= QAction(QIcon("folder.png"),"Open button", self)
tb_button_action3 "This opens a folder dialog.")
tb_button_action3.setStatusTip(connect(self.onDummyClick)
tb_button_action3.triggered.= QAction(QIcon("search.png"),"Search button", self)
tb_button_action4 "This opens a search.")
tb_button_action4.setStatusTip(connect(self.onDummyClick)
tb_button_action4.triggered.
toolbar.addAction(tb_button_action1)
toolbar.addAction(tb_button_action2)
toolbar.addAction(tb_button_action3)
toolbar.addAction(tb_button_action4)
# label
= QLabel()
l1 "Hello Cybernetics!")
l1.setText(
l1.setAlignment(Qt.AlignCenter)
self.setCentralWidget(l1)
def print_undo(self):
print(f"undo")
def print_redo(self):
print(f"redo")
def onDummyClick(self, s):
print("On click: ", s)
if __name__ == "__main__":
= QApplication(sys.argv)
app
= MainWindow()
window
window.show()
exec() app.
Das Ergebnis sieht dann wie folgt aus.
Für die Icons müssen die jeweiligen Bilder zur Verfügung stehen. Toolbars mit Icons sind wohl der meist genutzte Weg, um die meistgenutzten Funktionalitäten zur Verfügung zu stellen. Viele Anwendungsprogramme wie beispielsweise Office-Programme oder CAD-Programme verwenden Icon-basierte Toolbars auf einer breiten Basis.
Fazit
Die Verwendung des Widgets QToolbar
stellt sich als sehr einfach heraus.