用qt写一个画坐标轴的程序
时间: 2023-05-20 09:06:20 浏览: 60
好的,以下是一个用 Qt 编写的画坐标轴的程序:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("坐标轴");
QGridLayout *layout = new QGridLayout(&window);
QLabel *xLabel = new QLabel("X 轴");
QLabel *yLabel = new QLabel("Y 轴");
QSpinBox *xMinSpinBox = new QSpinBox;
xMinSpinBox->setRange(-100, 100);
xMinSpinBox->setValue(-10);
QSpinBox *xMaxSpinBox = new QSpinBox;
xMaxSpinBox->setRange(-100, 100);
xMaxSpinBox->setValue(10);
QSpinBox *yMinSpinBox = new QSpinBox;
yMinSpinBox->setRange(-100, 100);
yMinSpinBox->setValue(-10);
QSpinBox *yMaxSpinBox = new QSpinBox;
yMaxSpinBox->setRange(-100, 100);
yMaxSpinBox->setValue(10);
QCustomPlot *plot = new QCustomPlot;
plot->addGraph();
plot->graph(0)->setPen(QPen(Qt::blue));
plot->xAxis->setLabel("X");
plot->yAxis->setLabel("Y");
layout->addWidget(xLabel, 0, 1);
layout->addWidget(xMinSpinBox, 1, 0);
layout->addWidget(xMaxSpinBox, 1, 2);
layout->addWidget(yLabel, 2, 1);
layout->addWidget(yMinSpinBox, 3, 0);
layout->addWidget(yMaxSpinBox, 3, 2);
layout->addWidget(plot, 4, 0, 1, 3);
QObject::connect(xMinSpinBox, SIGNAL(valueChanged(int)), plot, SLOT(xAxisRangeChanged(int,int)));
QObject::connect(xMaxSpinBox, SIGNAL(valueChanged(int)), plot, SLOT(xAxisRangeChanged(int,int)));
QObject::connect(yMinSpinBox, SIGNAL(valueChanged(int)), plot, SLOT(yAxisRangeChanged(int,int)));
QObject::connect(yMaxSpinBox, SIGNAL(valueChanged(int)), plot, SLOT(yAxisRangeChanged(int,int)));
window.show();
return app.exec();
}
```
这个程序使用了 Qt 的 QCustomPlot 库来绘制坐标轴。用户可以通过调整四个 QSpinBox 来设置坐标轴的范围。当用户改变范围时,程序会自动更新坐标轴的显示。