2016-08-07 27 views
0

qtクラスをサブクラス化し、仮想関数を再実装する必要があります。 QLCDNumberクラスがあり、LCD番号画面のサイズを変更するときに番号の位置を設定する関数を再実装したいと思っています。Qt再実装関数

私はそれをQLCDNumberからクラスを継承して読み込み、関数 を再実装しますが、その関数コードをどこで取得すればその関数に必要なものを編集できるのでしょうか?私はドキュメントを読んだが、関数の使用法を説明し、コードを表示しない。画像例: Example image

QLCDNumberクラスを例として挙げましたが、私は仮想Qtクラス関数を再実装することを知る必要があります。 (

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

とpaintEvent中:あなたはQWidgetの継承したオブジェクトを作成することができますアプローチのこのタイプを使用して、このようなクラスの)(paintEventを実装することができ、この特定の問題について

+0

QLCDNumberはちょっと悪い例ですが、私はあなたが望むようにすることはできないと思います。したがって、明確にするには、Qtクラスの仮想保護された関数[例えば、これらの関数](http://doc.qt.io/qt-5/qwidget.html#protected-functions)をオーバーライドする助けが必要ですか? – hyde

答えて

0

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

しかし、私はこのメソッドを行う場合は、QLCDNumberのすべての機能を再度行う必要があります、私はクラスクラスではなく、基本クラス(QWidget)関数でマイナーなものを変更する必要があるようにqtクラスの機能を再実装できると思った。手伝ってくれてありがとう –