用C++和QT写一个软件,界面显示长轴和短轴输入框,点击按钮生成椭圆坐标点,点数为360,保存到txt文件
时间: 2023-06-27 20:04:51 浏览: 134
以下是一个简单的代码示例:
```c++
#include <iostream>
#include <fstream>
#include <cmath>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
using namespace std;
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget* parent = nullptr) : QMainWindow(parent) {
setWindowTitle("椭圆坐标点生成器");
QLabel* label_a = new QLabel("长轴:", this);
label_a->setGeometry(50, 30, 60, 20);
QLineEdit* edit_a = new QLineEdit(this);
edit_a->setGeometry(110, 30, 100, 20);
QLabel* label_b = new QLabel("短轴:", this);
label_b->setGeometry(50, 60, 60, 20);
QLineEdit* edit_b = new QLineEdit(this);
edit_b->setGeometry(110, 60, 100, 20);
QPushButton* button_generate = new QPushButton("生成", this);
button_generate->setGeometry(50, 100, 80, 30);
connect(button_generate, &QPushButton::clicked, [=]() {
double a = edit_a->text().toDouble();
double b = edit_b->text().toDouble();
ofstream fout("points.txt");
for (int i = 0; i < 360; i++) {
double theta = i * M_PI / 180;
double x = a * cos(theta);
double y = b * sin(theta);
fout << x << " " << y << endl;
}
fout.close();
QMessageBox::information(this, "提示", "生成成功!");
});
}
};
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.setGeometry(100, 100, 250, 150);
window.show();
return app.exec();
}
#include "main.moc"
```
这个程序使用了QT框架,通过创建一个继承自QMainWindow的MainWindow类,实现了一个简单的界面。界面上有两个输入框和一个按钮,当用户点击按钮时,程序会根据输入的长轴和短轴参数生成360个椭圆坐标点,并将这些点保存到名为points.txt的文本文件中。
需要注意的是,这个程序中使用了C++11的Lambda表达式来处理按钮的点击事件,并使用了Qt的信号与槽机制将按钮的clicked信号与Lambda表达式关联起来。
阅读全文