Qt 4.3 Dziedziczenie po QTableWidget a sloty

Odpowiedz Nowy wątek
2009-04-05 01:12
dzc
0

Witam,

Stworzylem klase, ktora dziedziczy z QTableWidget.
Chce w niej zaimplementować kopiowanie komórek, wklejanie itp..
Problem mam niestety ze SLOTEM.
W konstruktorze tworzę nową akcje i połączenie ze slotem:

MatrixView::MatrixView(QWidget* parent = 0):QTableWidget(parent)
{
        copy_matrix = new QAction("Kopiuj",this);
        addAction(copy_matrix);
        setContextMenuPolicy(Qt::ActionsContextMenu);
        connect(copy_matrix, SIGNAL(triggered()),this,SLOT(copy()));

}

Kiedy program tworzy tą klase pojawia się komunikat:
"Object::connect: No such slot QTableWidget::copy()"

Program szuka slota w klasie QTableWidget zamiast w MatrixView....
Obiekt klasy MatrixView tworzony jest:

   //QTableView *tableWidget1 <-pierwotnie było tak(przed napisanie klasy MatrixView)
   MatrixView *tableWidget1;

   //tableWidget = new QTableWidget(Matrix_dialogClass);  <-pierwotnie
    tableWidget1 = new MatrixView(Matrix_dialogClass);

Aktualnie odpalam w ten sposób, że SLOT - copy mam zdefiniowany w
klasie, w której wyświetla się MatrixView. I dopiero w nim jest
wywoływane tableWidget->copy(); Trochę to jest nie elegancko..dlatego
prosze o pomoc jak rozwiazac problem z tym connectem w klasie
MatrixView...

Pozostało 580 znaków

2009-04-06 12:43
0

pewnie zapomniałeś wstawić makro Q_Object na początku swojej klasy:

class MatrixView : public QTableWidget
{
    Q_OBJECT // tego ci brakuje
....

Makro to jest niezbędne by qmake przygotował metadata.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2009-04-06 12:55
dzc
0

Dzięki za odpowiedź, zapomniałem napisać, że problem już rozwiązałem..wczoraj
Dodałem Q_OBJECT i wszystko śmiga :)))

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0