if(menunum==1)//微分绘线 { line=new ScanLine(); line->DDALine(&painter, 30, 10, 10, 30); update(); } else if(menunum==2)//中点绘线 { line=new ScanLine(); line->MidLine(&painter ,30, 10, 10, 30); update(); } else if(menunum==3)//brenham { line=new ScanLine(); line->Bresenham(&painter ,30, 10, 10, 30); update(); } } void MainWindow::pop1() { } void MainWindow::pop2() { } void MainWindow::pop3() { }完善槽函数
时间: 2024-01-23 15:02:09 浏览: 74
(2021-2022年)专题资料完美版基于iOS的点菜系统的设计与实现.pptx
可以尝试按照以下方式来完善槽函数:
```c++
void MainWindow::pop1() {
menunum = 1;
// 可以在这里添加对应的代码,比如弹出一个窗口让用户输入绘制直线所需的参数等等
}
void MainWindow::pop2() {
menunum = 2;
// 可以在这里添加对应的代码,比如弹出一个窗口让用户输入绘制直线所需的参数等等
}
void MainWindow::pop3() {
menunum = 3;
// 可以在这里添加对应的代码,比如弹出一个窗口让用户输入绘制直线所需的参数等等
}
void MainWindow::paintEvent(QPaintEvent *event) {
if(menunum==1) { // 微分绘线
line = new ScanLine();
line->DDALine(&painter, 30, 10, 10, 30);
update();
} else if(menunum==2) { // 中点绘线
line = new ScanLine();
line->MidLine(&painter, 30, 10, 10, 30);
update();
} else if(menunum==3) { // brenham
line = new ScanLine();
line->Bresenham(&painter, 30, 10, 10, 30);
update();
}
}
```
在 `pop1()`、`pop2()`、`pop3()` 中,我们给 `menunum` 赋上对应的值,这个值将会在 `paintEvent()` 中被使用来判断绘制哪一种直线。
你可以根据需要,添加弹窗等交互功能,让用户输入所需的参数,然后再根据这些参数来调用 `DDALine()`、`MidLine()`、`Bresenham()` 等函数进行绘制。
阅读全文