ich bin gerade dabei, eine ToolBar auf mein MainWindow hinzuzufügen. Und ich bin ähnlich vorgegangen als würde ich eine Menüleiste hinzufügen. Ich habe eine '.py-Datei für die ToolBar angelegt. Die Datei sieht wie folgt aus:
MDIForm_ToolBar.py
Code: Alles auswählen
imort sys
from PyQt4.QtGui import QAction, QToolBar, QIcon
from PyQt4 import QtGui, QtCore
class ToolBarLeiste(QToolBar):
def __init__ (self, parent=None):
QToolBar.__init__(self, parent)
# Hier wird der Path des Icons angegeben, um dem Button der ToolBar ein Icon zu geben
self.DoShowToolBarFilmButton = QAction(QIcon('icons/open.png'), 'Film hinzufügen', self)
self.DoShowToolBarFilmButton.setShortcut('Ctrl+Q')
# An dieser Stelle wird eine Werkzeugleiste/ToolBar erzeugt.
self.DoShowToolBar = self.addToolBar('Film hinzufügen')
self.DoShowToolBar.addAction(self.DoShowTooBarFilmButton)
---------
MDIForm.py
Code: Alles auswählen
# -*- coding: cp1252 -*-
import sys
from PyQt4.QtGui import QMainWindow, QApplication, QAction, QMenuBar
from PyQt4.QtCore import SIGNAL, SLOT
from MDIForm_Menue import MenueLeiste
from MDIForm_ToolBar import ToolBarLeiste
class MDIFormular(QMainWindow):
# Vererbung aktivieren, angeben, dass es keine Elternform hat
def __init__ (self, parent=None):
QMainWindow.__init__(self, parent)
self.setWindowTitle(' Xarphus Build 0.1')
self.statusBar().showMessage('Ready')
# Menüleiste
self.MNUL_Verwaltung = MenueLeiste()
self.setMenuBar(self.MNUL_Verwaltung)
self.MNUL_Verwaltung.DoShowmnuClose.triggered.connect(self.MnuCloseMain)
# Werkzeugleiste
self.DoShowToolBar = ToolBarLeiste()
self.toolBarArea(self.DoShowToolBar)
def MnuCloseMain(self):
print "Ihr Programm wurde soeben erfolgreich beendet."
self.close()
Starte ich das ganze einmal, kommt folgende (für mich verwirrende) Fehlermeldung:
Die Fehlermeldung besagt, dass die Klasse "ToolBarLeiste" diesen "addToolBar" nicht als Attribut kennt. Komisch ist ja, wie man sehen kannt, dass ich sie dennoch als Attribut gekennzeichnet habe. Demzufolge dürfte die Klasse nicht so tun, als sei hier ein Attribut völlig aus dem Nichts erschienen, die er nicht als solches kennt. Falls ihr euch fragt, wie ich in Zeile 46 auf "toolBarArea" gekommen bin. Ich habe auf dieser Seite (http://qt-project.org/doc/qt-4.8/qmainwindow.html) unter "QMainWindow Class Reference" nach einer Methode gesucht. Dort habe ich auch für die Menüleiste die Methode "setMenuBar" gefunden.Traceback (most recent call last):
File "D:\Dan\Python\Xarphus.py", line 3, in <module>
from Xarphus.MDIForm import MDIFormular
File "D:\Dan\Python\Xarphus\MDIForm.py", line 79, in <module>
MDIWindow = MDIFormular()
File "D:\Dan\Python\Xarphus\MDIForm.py", line 56, in __init__
self.DoShowToolBar = ToolBarLeiste()
File "D:\Dan\Python\Xarphus\MDIForm_ToolBar.py", line 21, in __init__
self.DoShowToolBar = self.addToolBar('Film')
AttributeError: 'ToolBarLeiste' object has no attribute 'addToolBar'
Gruß
Sophus