-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