1
另一个QLabel鼠标按下好所以我想要做的是创建一个新的QLabel添加到QList,并把它放在我点击其他QLabel我点击的地方。创建并指定一个QLabel后QT
因此,这里是我的代码:
class CustomLabel : public QLabel
{
Q_OBJECT
public:
CustomLabel();
void mousePressEvent(QMouseEvent* event);
private:
QList<QLabel *> pointsL;
QList<QPoint *> points;
};
void CustomLabel::mousePressEvent(QMouseEvent *event)
{
points << new QPoint(event->pos());
pointsL << new QLabel(this);
pointsL.at(pointsL.size()-1)->setText("+");
pointsL.at(pointsL.size()-1)->setGeometry(QRect(points.at(points.size()-1)->rx(),, points.at(points.size()-1)->ry(), 1, 1));
}
我也试过:
pointsL.at(pointsL.size()-1)->move(points.at(points.size()-1)->rx(), points.at(points.size()-1)->ry());
这:
void CustomLabel::mousePressEvent(QMouseEvent *event)
{
points << new QPoint(event->pos());
pointsL << new QLabel(this);
pointsL.at(pointsL.size()-1)->setText("+");
pointsL.at(pointsL.size()-1)->move(*points.at(points.size()-1));
pointsL.at(pointsL.size()-1)->setTabOrder(pointsL.at(pointsL.size()-1), this);
}
当我点击自定义标签没有任何反应。构造函数是空的。
感谢您的任何答案。
不要以为QLabel可以作为容器构件,即它不能有另一个QLabel像一个孩子,并显示它。这可能是新标签没有出现的原因。我不确定我完全理解你的情况。你是否尝试过一个QGridLayout?鼠标事件需要由父QWidget处理。 – user2672165
我发现了该问题的替代方案,不过谢谢! – user2826636