event.cpp

来自「几个qt-linux的练习小程序」· C++ 代码 · 共 115 行

CPP
115
字号
#include <qwidget.h>#include <qpainter.h>#include <qpicture.h>#include <qlabel.h>#include <qstring.h>#include <qapplication.h>#include <math.h>#include <qevent.h>class MyMainWindow:public QWidget{public:  MyMainWindow(QWidget* parent=0);void ReSize(int x, int y);};void MyMainWindow::ReSize(int X, int Y){    resize(X, Y);}MyMainWindow::MyMainWindow(QWidget *parent):QWidget(parent){}class DrawWidget:public QWidget{public:   DrawWidget();   MyMainWindow *draw;protected:    void drawIt( QPainter * );    void drawIt1( QPainter *p , QString a );    void paintEvent( QPaintEvent * );    void keyPressEvent(QKeyEvent *event);private:    void drawFonts(QPainter *p);  void drawFonts1(QPainter *p, QString a);};DrawWidget::DrawWidget() : QWidget(){    draw = new MyMainWindow(this);        qDebug("--------");    draw->ReSize(750, 550);    draw->setBackgroundColor(red);    update();    resize(800, 600);}void DrawWidget::drawIt( QPainter *p ){    drawFonts(p);}void DrawWidget::drawFonts( QPainter *p ){    p->drawText(10,10,"Please press 'shift' or 'end', thinks");}//keyeventvoid DrawWidget::drawIt1( QPainter *p , QString a){    drawFonts1(p , a);}void DrawWidget::drawFonts1( QPainter *p, QString a){    p->drawText(100,100,a);}//void DrawWidget::paintEvent( QPaintEvent *){    QPainter paint( draw );    drawIt( &paint );}void DrawWidget::keyPressEvent(QKeyEvent *event){    draw->erase ();    QPainter paint( draw ); /*   int b = event->key();    QString a = b + "";    drawIt1( &paint , a);  */    QString a;    switch (event->key()){	case Key_Shift:    		a ="the key is shift";		break;	case Key_End:		a ="the key is end";		break;    }    drawIt1( &paint , a);    }int main(int argc,char** argv){  QApplication app(argc,argv);  DrawWidget w;    app.setMainWidget(&w);  w.show();  return app.exec();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?