我想做这样的事情,尽管我明白这不是它的工作方式。我对QMouseEvent不是很在行
void MainWindow::on_addState_triggered(QMouseEvent* event)
{
qDebug() << event->pos();
if (event->buttons() == Qt::LeftButton)
{
newBoard.drawState(event->x(),event->y());
}
}因此,我想点击界面中的按钮addState (用Designer模式制作,ui文件),然后第二次点击我的场景,它用鼠标(点击)的位置调用drawState()。
我该怎么做?
现在代码已经编译了,但是在运行的时候我得到了这个错误
QMetaObject::connectSlotsByName: No matching signal for on_addState_triggered(QMouseEvent*)发布于 2020-06-07 15:29:28
好吧,我想我可以做的方式有点丑陋,但它“工作”。
也许有一种更干净的方法可以做到以下几点:
void MainWindow::on_addState_triggered()
{
drawAddState=true;
}
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if(drawAddState==true)
{
if (event->button() == Qt::LeftButton) {
newBoard.drawState(event->localPos().x(),event->localPos().y());
drawAddState=false;
}
}
}不幸的是,事件->localPos()、pos()甚至GlobalPos与我的GraphicsScene不相关,我不能将状态项准确地放在我单击的位置。对此有什么想法吗?
更新:我在这里回复自己:https://stackoverflow.com/a/62278962/13621190
https://stackoverflow.com/questions/62245683
复制相似问题