|

自定义类,头文件- #ifndef GATE_H
- #define GATE_H
- #include <QWidget>
- #include "QPainter"
- class gate : public QWidget
- {
- Q_OBJECT
- Q_PROPERTY(Epotentail InA READ getInA WRITE setInA)
- Q_PROPERTY(Epotentail InB READ getInB WRITE setInB)
- Q_PROPERTY(Epotentail OutY READ getOutY WRITE setOutY)
- Q_ENUMS(Epotentail)
- public:
- explicit gate(QWidget *parent = 0);
- enum Epotentail{/*Enull*/Elow,Ehight};
- Epotentail Fina,Finb,Fouty;
- Epotentail getInA(){return Fina;}
- Epotentail getInB(){return Finb;}
- Epotentail getOutY(){return Fouty;}
- void setInA(int A){Fina = Epotentail(A);gated();}
- void setInB(int B){Finb = Epotentail(B);gated();}
- void setOutY(int Y){Y;}
- void gated();
- protected:
- void paintEvent(QPaintEvent *event);
- void DoDrawText();
- //signals:
-
- //public slots:
-
- };
- #endif // GATE_H
。cpp
- #include "gate.h"
- gate::gate(QWidget *parent) :
- QWidget(parent)
- {
- //
- }
- void gate::gated()
- {
- if(Fina == Ehight&&Finb == Ehight){
- Fouty=Ehight;}
- // else if(Fina ==Enull||Finb == Enull){
- // Fouty=Enull;
- // }
- else {
- Fouty=Elow;
- }
- update();
- }
- void gate::paintEvent(QPaintEvent *event)
- {
- event;
- QPainter painter(this);
- painter.setPen(QPen(Qt::black,2,Qt::SolidLine,Qt::RoundCap));
- if(Fouty == Elow)
- {
- painter.setPen(QPen(Qt::black,2,Qt::SolidLine,Qt::RoundCap));
- }
- else if(Fouty == Ehight){
- painter.setPen(QPen(Qt::red,2,Qt::SolidLine,Qt::RoundCap));
- }
- // else{
- // painter.setPen(QPen(Qt::gray,2,Qt::SolidLine,Qt::RoundCap));
- // }
- painter.drawRect(50,50,100,80); //绘制原件中间的方块部分
- painter.drawLine(0,70,50,70); //绘制输入端输出端
- painter.drawLine(0,110,50,110);
- painter.drawLine(150,90,200,90);
- DoDrawText();
- }
- void gate::DoDrawText()
- {
- QFont font;
- font.setPointSize(20);
- QPainter painter(this);
- painter.setFont(font);
- QRect z(50,50,100,80);
- painter.drawText(z, Qt::AlignCenter, tr("&"));
- }
要写个继承与gate类的子类- #ifndef ANDGATE_H
- #define ANDGATE_H
- #include "gate.h"
- class andgate : public gate
- {
- Q_OBJECT
- public:
- explicit andgate(QWidget *parent = 0);
- };
- #endif // ANDGATE_H
错误
|