小编Fra*_*sco的帖子

在QGraphicsScene中选择项目

我试图了解如何重新定义项目的选择和转换方式(一旦被选中)QGraphicsScene.例如,更改线条的长度,移动线条,通过移动其中一个点来更改多边形.

我创建了一个孩子QGraphicsView并且已经开始重载它mousePressEvent,但似乎选择和移动动作都被捕获了QGraphicsItem.我怎样才能覆盖它,因为它们受到保护而且从孩子身上看不到QGraphicsView

我可以想象我需要QGraphicsItem::mousePressEvent在a中重载myGraphicsItem,但那意味着我还必须重载以QGraphicsScene进行处理myGraphicsItem?如何移动场景中的选定项目位置?

有什么我可以看的例子吗?

我(显然)有点失落.

更新:根据反馈,我创建了一个QGraphicsItems如下的孩子:

class baseGraphicItem : public QGraphicsItem
{
public:
    explicit baseGraphicItem(QVector<QPoint> data, operationType shape, QObject * parent = 0);

signals:

public slots:

public:
    virtual QRectF boundingRect() const;
    virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
    QPainterPath shape() const;
    virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event );
    virtual void hoverLeaveEvent ( …
Run Code Online (Sandbox Code Playgroud)

qt selection qgraphicsitem

7
推荐指数
1
解决办法
1万
查看次数

检查当前时间是否在给定的时间间隔内,GOLANG

我试图找到一种方法来检查当前时间是否在给定的时间间隔内,开始和结束时间由用户(最终)给出。

在确保所有时间都在 UTC 之后,我一直在尝试使用 Time 包中的 After 和 Before,但显然我做错了什么。

代码看起来类似于这个例子:

func inTimeSpan(start, end, check time.Time) bool {
    return check.After(start) && check.Before(end)
}

func main() {

    now := time.Now()
    newLayout := "15:04"
    ns, _ := time.Parse(newLayout, strconv.Itoa(now.Hour())+":"+strconv.Itoa(now.Minute()))
    srt, _ := time.Parse(newLayout, "23:00")
    end, _ := time.Parse(newLayout, "05:00")

    fmt.Println("1 : ", inTimeSpan(srt, end, ns))
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

time go

6
推荐指数
2
解决办法
8333
查看次数

标签 统计

go ×1

qgraphicsitem ×1

qt ×1

selection ×1

time ×1