searchdemo 一.绘制方格

  先熟悉一下界面的绘制,下一步对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 }

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

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 }
原文地址:https://www.cnblogs.com/invisible/p/2448323.html