2010-02-11 2 views
3

je suis nouveau à QT, j'ai essayé des échantillons de recherche beaucoup de la façon d'obtenir l'événement de peinture bouton QT .. Je ne reçois pas la façon de le faire ..Comment obtenir l'événement de peinture pour les boutons QT

comment définir les délégués pour le bouton-poussoir dans QT ?. comment obtenir l'événement de peinture pour bouton-poussoir? J'ai lu tant d'articles, il dit que nous pouvons obtenir l'événement de peinture de bouton que nous pouvons personnaliser aussi. mais je n'ai pas obtenu le morceau de code comment obtenir l'événement de peinture ..

j'essaye de faire cet échantillon, en sub classant toujours je ne reçois pas l'événement. s'il vous plaît me dire whre m me trompe

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(); 
} 

encore je ne suis pas en mesure d'obtenir les événements.

aidez-moi s'il vous plaît dans ce.

Merci

+3

'QPushButton * Newbutton = nouveau QPushButton();' devrait être 'QPushButton * Newbutton = new Mybutton();'. –

+0

Vous avez raison kyle :) – Naruto

+0

Content de pouvoir aider. –

Répondre

3

Vous devez sous-classe QPushButton et réimplémenter paintEvent().

+0

hey, j'ai essayé en faisant sous-classe .. encore je ne suis pas capable d'obtenir l'événement .. j'ai mis à jour le code dans mon post s'il vous plaît regarder et me dire ce qui manque – Naruto

0
  1. Sous-classe QPushButton, par ex. class MyButton : public QPushButton.... Vous semblez manquer public. PaintEvent est une méthode protégée, donc votre remplacement public ne fonctionnera pas correctement.

  2. Cela n'est pas considéré comme la création d'un délégué pour QPushButton. Qu'est-ce que vous faites, c'est que vous êtes sous-classer et ré-implémenter son paintEvent.

+0

ya .. je l'ai .. en QT pour De quel contrôle avons-nous besoin pour créer un délégué? je sais listview un mais reste je ne le fais pas? .. y pas pour le bouton? quelle est l'idée derrière tout cela? – Naruto

+0

Bien, seules les vues d'élément (liste, table et arborescence) ont des délégués. Tous les widgets sont destinés à être sous-classés. – e8johan

Questions connexes