あなたが正しく示唆したように、mousePressEvent
を使用してマウスを押してください。マウス・プレス(ズーム、パン、...)で正しいアクションを実行するには、最後に押されたボタンを覚えておいて、それに応じて適切なメソッドを呼び出す必要があります。次のようにこれを実装することができます:あなたの助けを
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow()
{
connect(ui->panButton, &QPushButton::clicked, this, &MainWindow::onPan)
connect(ui->zoomButton, &QPushButton::clicked, this, &MainWindow::onZoom)
...
}
protected slots:
enum Action {None, Pan, Zoom, ...};
void onPan() {currentAction = Pan;}
void onZoom() {currentAction = Zoom;}
protected:
void mousePressEvent(QMouseEvent *event)
{
switch(currentAction)
{
case Pan:
// perform Pan operation
break;
case Zoom:
// perform Zoom operation
break;
}
}
protected:
Action currentAction;
};
おかげで、私はこのソリューションをしようとしていますし、私はfuntionsパン、ズームを書いています...私はあなたの結果 – Jasseur
を教えてくれる、それがうまく機能します!どうも – Jasseur