• 4301阅读
  • 3回复

继承问题,已解决 [复制链接]

上一主题 下一主题
离线it小猫
 
只看楼主 倒序阅读 楼主  发表于: 2013-04-12


自定义类,
文件
  1. #ifndef GATE_H
  2. #define GATE_H
  3. #include <QWidget>
  4. #include "QPainter"
  5. class gate : public QWidget
  6. {
  7.     Q_OBJECT
  8.     Q_PROPERTY(Epotentail InA READ getInA WRITE setInA)
  9.     Q_PROPERTY(Epotentail InB READ getInB WRITE setInB)
  10.     Q_PROPERTY(Epotentail OutY READ getOutY WRITE setOutY)
  11.     Q_ENUMS(Epotentail)
  12. public:
  13.     explicit gate(QWidget *parent = 0);
  14.     enum Epotentail{/*Enull*/Elow,Ehight};
  15.     Epotentail Fina,Finb,Fouty;
  16.     Epotentail getInA(){return Fina;}
  17.     Epotentail getInB(){return Finb;}
  18.     Epotentail getOutY(){return Fouty;}
  19.     void setInA(int A){Fina = Epotentail(A);gated();}
  20.     void setInB(int B){Finb = Epotentail(B);gated();}
  21.     void setOutY(int Y){Y;}
  22.     void gated();
  23. protected:
  24.     void paintEvent(QPaintEvent *event);
  25.     void DoDrawText();
  26. //signals:
  27.     
  28. //public slots:
  29.     
  30. };
  31. #endif // GATE_H
。cpp


  1. #include "gate.h"
  2. gate::gate(QWidget *parent) :
  3.     QWidget(parent)
  4. {
  5.     //
  6. }
  7. void gate::gated()
  8. {
  9.     if(Fina == Ehight&&Finb == Ehight){
  10.     Fouty=Ehight;}
  11. //    else if(Fina ==Enull||Finb == Enull){
  12. //    Fouty=Enull;
  13. //    }
  14.     else {
  15.     Fouty=Elow;
  16.     }
  17.     update();
  18. }
  19. void gate::paintEvent(QPaintEvent *event)
  20. {
  21.     event;
  22.     QPainter painter(this);
  23.     painter.setPen(QPen(Qt::black,2,Qt::SolidLine,Qt::RoundCap));
  24.     if(Fouty == Elow)
  25.     {
  26.         painter.setPen(QPen(Qt::black,2,Qt::SolidLine,Qt::RoundCap));
  27.     }
  28.     else if(Fouty == Ehight){
  29.         painter.setPen(QPen(Qt::red,2,Qt::SolidLine,Qt::RoundCap));
  30.     }
  31. //    else{
  32. //       painter.setPen(QPen(Qt::gray,2,Qt::SolidLine,Qt::RoundCap));
  33. //    }
  34.     painter.drawRect(50,50,100,80);     //绘制原件中间的方块部分
  35.     painter.drawLine(0,70,50,70);       //绘制输入端输出端
  36.     painter.drawLine(0,110,50,110);
  37.     painter.drawLine(150,90,200,90);
  38.     DoDrawText();
  39. }
  40. void gate::DoDrawText()
  41. {
  42.     QFont font;
  43.     font.setPointSize(20);
  44.     QPainter painter(this);
  45.     painter.setFont(font);
  46.     QRect z(50,50,100,80);
  47.     painter.drawText(z, Qt::AlignCenter, tr("&"));
  48. }






要写个继承与gate类的子类
  1. #ifndef ANDGATE_H
  2. #define ANDGATE_H
  3. #include "gate.h"
  4. class andgate : public gate
  5. {
  6.     Q_OBJECT
  7. public:
  8.     explicit andgate(QWidget *parent = 0);
  9. };
  10. #endif // ANDGATE_H


错误


离线it小猫
只看该作者 1楼 发表于: 2013-04-13
未添加gate类
离线gesturewei
只看该作者 2楼 发表于: 2013-04-14
为什么楼主在creator里面用vc编译器编译Qt项目?
离线jdwx

只看该作者 3楼 发表于: 2013-04-14
在windows里用VC编译器是个好选择。mingw慢得会让你受不了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个