先熟悉一下界面的绘制,下一步对node类进行细化。
效果图:
main.cpp
C++语言: Codee#26061
01 #include <QtCore>
02 #include <QtGui>
03 #include "widget.h"
04
05 int main(int argc, char* argv[])
06 {
07 QApplication app(argc, argv);
08
09 MyWidget* test = new MyWidget;
10 QRect frect = test->frameGeometry();
11 frect.moveCenter(QDesktopWidget().availableGeometry().center());
12 test->move(frect.topLeft());
13 test->show();
14
15 QMessageBox::warning(test, QObject::tr("drawtest"),
16 QString::number(test->x()) +
17 "," +
18 QString::number(test->y()));
19
20 return app.exec();
21 }
02 #include <QtGui>
03 #include "widget.h"
04
05 int main(int argc, char* argv[])
06 {
07 QApplication app(argc, argv);
08
09 MyWidget* test = new MyWidget;
10 QRect frect = test->frameGeometry();
11 frect.moveCenter(QDesktopWidget().availableGeometry().center());
12 test->move(frect.topLeft());
13 test->show();
14
15 QMessageBox::warning(test, QObject::tr("drawtest"),
16 QString::number(test->x()) +
17 "," +
18 QString::number(test->y()));
19
20 return app.exec();
21 }
widgit.h
C++语言: Codee#26062
01 #ifndef MY_WIDGET
02 #define MY_WIDGET
03 #include <QtGui>
04 #include <QtCore>
05
06 class MyWidget: public QWidget
07 {
08 public:
09 MyWidget(QWidget* parent = 0);
10 void paintEvent(QPaintEvent* event);
11 };
12
13 #endif
02 #define MY_WIDGET
03 #include <QtGui>
04 #include <QtCore>
05
06 class MyWidget: public QWidget
07 {
08 public:
09 MyWidget(QWidget* parent = 0);
10 void paintEvent(QPaintEvent* event);
11 };
12
13 #endif
widget.cpp:
C++语言: Codee#26063
01 #include "widget.h"
02
03 MyWidget::MyWidget(QWidget* parent)
04 : QWidget(parent)
05 {
06 setAttribute(Qt::WA_StaticContents);
07 setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
08 this->resize(910, 700);
09 }
10
11 void MyWidget::paintEvent(QPaintEvent* event)
12 {
13 QPainter painter(this);
14
15 painter.setPen(QPen(Qt::black));
16 painter.setFont(QFont("Arial", 30));
17 painter.drawText(rect(), Qt::AlignCenter, "Hello Qt!");
18
19 for (int i = 0; i < 910; i += 35)
20 painter.drawLine(i, 0,
21 i, 700);
22 for (int j = 0; j <= 700; j += 35)
23 painter.drawLine(0, j,
24 910, j);
25 }
02
03 MyWidget::MyWidget(QWidget* parent)
04 : QWidget(parent)
05 {
06 setAttribute(Qt::WA_StaticContents);
07 setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
08 this->resize(910, 700);
09 }
10
11 void MyWidget::paintEvent(QPaintEvent* event)
12 {
13 QPainter painter(this);
14
15 painter.setPen(QPen(Qt::black));
16 painter.setFont(QFont("Arial", 30));
17 painter.drawText(rect(), Qt::AlignCenter, "Hello Qt!");
18
19 for (int i = 0; i < 910; i += 35)
20 painter.drawLine(i, 0,
21 i, 700);
22 for (int j = 0; j <= 700; j += 35)
23 painter.drawLine(0, j,
24 910, j);
25 }