3

私はQTを初めて使用します.QTでボタンペイントイベントを取得する方法のサンプルをたくさん検索してみました..私はそれを行う方法を取得していません..

QT でプッシュボタンのデリゲートを設定する方法は? プッシュボタンのペイントイベントを取得するには?

私は非常に多くの記事を読みましたが、カスタマイズできるボタンのペイントイベントも取得できると書かれています。しかし、ペイントイベントを取得する方法のコードを取得できませんでした..

私はこのサンプルを実行しようとしましたが、サブクラス化によってまだイベントを取得していません。どこが間違っているか教えてください

  class Mybutton:QPushButton
    {
public:
    Mybutton(QObject *parent = 0){}
    void paintEvent ( QPaintEvent * );

    };




void Mybutton::paintEvent(QPaintEvent* Paint)
    {

    Paint->rect();

    }



int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPushButton *Newbutton = new QPushButton();
    Newbutton->move(20,30);
    Newbutton->show();



    return a.exec();
}

まだイベントを取得できません。

これで私を助けてください。

ありがとう

4

2 に答える 2

3

QPushButtonサブクラス化して再実装する必要がありますpaintEvent()

于 2010-02-11T06:13:49.827 に答える
0
  1. QPushButton のサブクラスclass MyButton : public QPushButton...。あなたは公開を逃しているようです。

  2. paintEvent は保護されたメソッドであるため、パブリック オーバーライドはうまく機能しません。

  3. これは、QPushButton のデリゲートの作成とは呼ばれません。あなたがしていることは、それをサブクラス化し、その paintEvent を再実装していることです。

于 2010-02-11T13:37:57.233 に答える