[英]How to connect right click menu action to some function in QGraphicsView?
目前在我的 QGraphicsScene 中,有多個項目(如文本、橢圓、矩形、多段線等)我想通過右鍵單擊它們然后選擇“Color Me”選項來更改這些項目的顏色。 單擊“Color Me”選項后,應彈出顏色對話框,然后我應該更改項目的顏色。
但在我的嘗試中,右鍵單擊時,出現了 Color Me 選項,但單擊它的 ColorOption 插槽沒有被調用。
Widget::Widget(QWidget *parent)
: QGraphicsView(parent)
, ui(new Ui::Widget)
{
.....
myCustomAction1 = new QAction(tr("Color Me"), this);
connect(myCustomAction1, SIGNAL(triggered()), this, SLOT(ColorOption()));
.....
}
void Widget::ColorOption()
{
QColor color = QColorDialog::getColor(currentColor);
if(color.isValid())
currentColor = color;
.....
}
小部件.h
class Widget : public QGraphicsView
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
QGraphicsScene* scene;
QGraphicsView* view;
QAction* myCustomAction1;
QColor currentColor;
};
如果有人能提供幫助,我將不勝感激。
為了使信號槽機制起作用,必須在 class 聲明中聲明槽 function。 即以下需要在 Widget.h 中:
public slots:
void ColorOption();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.