<img src="http://img.blog.csdn.net/20150425172635867?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlxdWFuMDAxNzg5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
//mainwindow.cpp #include "pointsave.h" #include "mainwindow.h" #include "ui_mainwindow.h"
<span style="font-family: Arial, Helvetica, sans-serif;">#include <QString></span>
#include<QGraphicsView> #include<QGraphicsScene> #include<QGraphicsLineItem> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // QGraphicsLineItem *item = new QGraphicsLineItem(-100,100,0,0); QGraphicsScene *scene=new QGraphicsScene(); scene->addLine(-340,150,-340,-150); scene->addLine(-340,-150,-343,-146); scene->addLine(-340,-150,-337,-146); scene->addLine(-340,150,340,150); scene->addLine(340,150,336,147); scene->addLine(340,150,336,153); for(int i=-240;i<350;i+=100) { scene->addLine(i,150,i,-150); } for(int i=150;i>-150;i-=100) { scene->addLine(-340,i,340,i); } scene->setSceneRect(-(ui->graphicsView->width()/2),-(ui->graphicsView->height()),ui->graphicsView->width()*2,ui->graphicsView->height()*2); ui->graphicsView->setScene(scene); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_4_clicked() { extern Pointtt point; point.AddPoint(ui->lineEdit->text().toInt(),ui->lineEdit_2->text().toInt()); ui->textEdit->append(ui->lineEdit->text()+","+ui->lineEdit_2->text()+";"); Pointtt::po *pdd; pdd=&point.rehead(); // ui->textEdit->setText(QString::number(pdd->next->x)); } void MainWindow::on_pushButton_2_clicked() { ui->graphicsView->scale(1.5,1.5); } void MainWindow::on_pushButton_clicked() { ui->graphicsView->scale(0.5,0.5); } void MainWindow::on_pushButton_3_clicked() { extern Pointtt point; extern QGraphicsScene scene; Pointtt::po *dd; Pointtt::po *ddd; //ui->graphicsView->scene()->clear(); dd=&point.rehead(); for(ddd=dd->next;ddd!=nullptr;ddd=ddd->next) { ui->graphicsView->scene()->addLine((-340+dd->x),(150-dd->y),(-340+ddd->x),(150-ddd->y)); dd=dd->next; } }
<pre name="code" class="cpp">//mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_pushButton_4_clicked(); void on_pushButton_2_clicked(); void on_pushButton_clicked(); void on_pushButton_3_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
//pointsave.h #ifndef POINTSAVE #define POINTSAVE class Pointtt { public: struct po { int x; int y; struct po *next; }; private: struct po *cc; struct po head; public: Pointtt(); struct po rehead(); void AddPoint(int xx,int yy); }; #endif // POINTSAVE
//pointsave.cpp #include"pointsave.h" Pointtt point; void Pointtt ::AddPoint(int xx,int yy) { po *p; p=new po; p->x =xx; p->y=yy; po *f; f=&head; for(cc=head.next;cc!=nullptr;cc=cc->next) { if(p->x<cc->x) { po *u; u=f->next; f->next=p; p->next=u; return ; } f=f->next; } f->next=p; p->next=nullptr; } Pointtt::Pointtt() { this->head.x=0; this->head.y=0; this->head.next=nullptr; } Pointtt::po Pointtt::rehead() { return this->head; }
//mainwindow.ui <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>711</width> <height>420</height> </rect> </property> <property name="minimumSize"> <size> <width>711</width> <height>420</height> </size> </property> <property name="maximumSize"> <size> <width>711</width> <height>420</height> </size> </property> <property name="sizeIncrement"> <size> <width>711</width> <height>420</height> </size> </property> <property name="baseSize"> <size> <width>711</width> <height>420</height> </size> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralWidget"> <widget class="QGraphicsView" name="graphicsView"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>711</width> <height>331</height> </rect> </property> </widget> <widget class="QPushButton" name="pushButton"> <property name="geometry"> <rect> <x>20</x> <y>340</y> <width>21</width> <height>23</height> </rect> </property> <property name="text"> <string>-</string> </property> </widget> <widget class="QPushButton" name="pushButton_2"> <property name="geometry"> <rect> <x>50</x> <y>340</y> <width>21</width> <height>23</height> </rect> </property> <property name="text"> <string>+</string> </property> </widget> <widget class="QPushButton" name="pushButton_3"> <property name="geometry"> <rect> <x>20</x> <y>380</y> <width>51</width> <height>23</height> </rect> </property> <property name="text"> <string>build</string> </property> </widget> <widget class="QTextEdit" name="textEdit"> <property name="geometry"> <rect> <x>250</x> <y>330</y> <width>461</width> <height>91</height> </rect> </property> </widget> <widget class="QLabel" name="label"> <property name="geometry"> <rect> <x>111</x> <y>340</y> <width>16</width> <height>16</height> </rect> </property> <property name="text"> <string>x:</string> </property> </widget> <widget class="QLabel" name="label_2"> <property name="geometry"> <rect> <x>111</x> <y>357</y> <width>16</width> <height>16</height> </rect> </property> <property name="text"> <string>y:</string> </property> </widget> <widget class="QLineEdit" name="lineEdit"> <property name="geometry"> <rect> <x>129</x> <y>340</y> <width>91</width> <height>20</height> </rect> </property> </widget> <widget class="QLineEdit" name="lineEdit_2"> <property name="geometry"> <rect> <x>129</x> <y>357</y> <width>91</width> <height>20</height> </rect> </property> </widget> <widget class="QPushButton" name="pushButton_4"> <property name="geometry"> <rect> <x>130</x> <y>380</y> <width>75</width> <height>23</height> </rect> </property> <property name="text"> <string>addpoint</string> </property> </widget> </widget> </widget> <layoutdefault spacing="6" margin="11"/> <resources/> <connections/> </ui>