2016-08-07 15 views
0

Ich muss Klasse QT Unterklasse und die virtuelle Funktion neu implementieren. Angenommen, ich habe die Klasse QLCDNumber, und ich möchte die Funktion, die die Position der Zahl bei der Größenanpassung der LCD-Nummer festlegen, neu implementieren, wie das zu erreichen?Qt Reimplementierungsfunktion

Ich lese das von inhert eine Klasse von QLCDNumber und reimplementieren Sie die Funktion, aber wo bekomme ich diesen Funktionscode, damit ich bearbeiten kann, was in dieser Funktion benötigt? Ich lese die Dokumentation, aber es erklärt die Funktion verwendet und nicht seinen Code anzeigen. Beispielbild: Example image

mir die QLCDNumber Klasse als Beispiel erwähnt, ich brauche die prosses von reimplemnt einer virtuellen Qt-Klasse Funktion kennen.

+0

QLCDnumber ist ein bisschen schlechtes Beispiel, ich glaube nicht, dass es möglich ist, zu tun, was Sie damit wollen. Um es klar zu sagen, Sie wollen Hilfe beim Überschreiben der virtuellen geschützten Funktionen von Qt-Klassen, [zum Beispiel diese] (http://doc.qt.io/qt-5/qwidget.html#protected-functions)? – hyde

Antwort

0

Für dieses spezielle Problem Sie diese Art von Ansatz verwenden können, wo Sie ein Objekt erstellen kann, die wie folgt QWidget und Umsetzung der paintEventO() der Klasse erbt:

class MyWidget : public QWidget 
{ 
    Q_OBJECT 
public: 
    explicit MyWidget(QWidget *parent = 0); 
    ~MyWidget(); 
protected: 
    void paintEvent(QPaintEvent *pe); 
signals: 
public slots: 
}; 

und in der paintEventO ()

void MyWidget::paintEvent(QPaintEvent *pe) 
{ 
    QPainter *painter = new QPainter(this); 
    painter->begin(this); 
    // draw what you want here using painter 
    // and consider your different layouts 
    painter->end(); 
} 
+0

aber wenn ich diese Methode dann tun muss es alle Funktion in QLCDnumber wieder tun, dachte ich, dass Qt-Klassen-Funktion neu implementiert werden kann, so dass wenn kleinere Sache in der Klasse ändern, nicht die Basisklassen (QWidget) funktionieren. danke für die Hilfe –

Verwandte Themen