-1
我实现了一个代码,用于在图形视图中点击按钮来添加项目,如圆圈,线条等。在信号和插槽的帮助下,我可以通过单击按钮多次添加项目。例如,当我按下“线路”按钮时,我可以添加线路多少次,并且无需再次按下按钮,为了销毁这个我使用keyevents,即当我推动ESC时,该事件应该结束。但是当我这样做时,应用程序崩溃,窗口关闭。以下是代码片段。请你检查什么错误Qt中的关键事件
mainwindow.h
#include "line.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QPainter *painter;
line *item1;
private slots:
void drawLine();
mainwindow.cpp
void MainWindow::drawLine(){
ui->graphicsView->setScene(scene);
item1 = new line;
scene->addItem(item1);
qDebug() << "Line Created";
connect(item1, SIGNAL(DrawFinished()), this, SLOT(drawLine()));
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::ESC) {
connect(item1, SIGNAL(DrawFinished(),SLOT(drawLine()));
scene->remove(item1);
}
这不会编译。缺少'}'括号和'''括号。粘贴您正在运行的实际代码的相关片段。 – BartoszKP