Как в классе основаном на базовом классе QGraphicsScene заставить работать QMessageBox?
По двойному клику (не важно по какому событию) должен вылезти QMessageBox, но при компиляции выходит ошибка:
../scene/scene.cpp: In member function ‘virtual void Scene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)’:
../scene/scene.cpp:13: error: no matching function for call to ‘QMessageBox::warning(Scene* const, QString, QString)’
/usr/include/qt4/QtGui/qmessagebox.h:199: note: candidates are: static QMessageBox::StandardButton QMessageBox::warning(QWidget*, const QString&, const QString&, QFlags<QMessageBox::StandardButton>, QMessageBox::StandardButton)
/usr/include/qt4/QtGui/qmessagebox.h:247: note: static int QMessageBox::warning(QWidget*, const QString&, const QString&, int, int, int)
/usr/include/qt4/QtGui/qmessagebox.h:250: note: static int QMessageBox::warning(QWidget*, const QString&, const QString&, const QString&, const QString&, const QString&, int, int)
/usr/include/qt4/QtGui/qmessagebox.h:257: note: static int QMessageBox::warning(QWidget*, const QString&, const QString&, QMessageBox::StandardButton, QMessageBox::StandardButton)
../scene/scene.cpp: At global scope:
../scene/scene.cpp:10: warning: unused parameter ‘event’
make: *** [scene.o] Ошибка 1
Есть вот такой код:
mainwindow.cpp:
#include <QtGui>
#include "mainwindow.h"
#include "scene.h"
MainWindow::MainWindow()
{
scene = new Scene;
view = new QGraphicsView(scene);
view->setScene(scene);
QTabWidget *tab = new QTabWidget;
tab->setMinimumSize(300,200);
tab->insertTab(1,view,"Tab1");
setCentralWidget(tab);
}
MainWindow::~MainWindow()
{
}
scene.cpp:
#include <QtGui>
#include "scene.h"
Scene::Scene(QObject *parent) :
QGraphicsScene(parent)
{
}
void Scene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
QMessageBox::warning(this, tr("Message"),
tr("This Message!"));
}
Важно чтоб QMessageBox был в QGraphicsScene, могу хидеры выложить.