Qt
郭萌萌
这个作者很懒,什么都没留下…
展开
-
QGraphicsView的滚动条改变位置后获取当前界面上的场景和视图坐标区域
当在QGraohicsView中添加了滚动条可以通过改变滚动条的位置来查看view的不同位置处的元素。那么当改变了查看位置时,我们往往需要获取当前界面显示区域的场景坐标或视图坐标。可以用一下的方式来获取这两种坐标。 QRect viewport_rect(0,0,use_view->viewport()->width(),use_view->viewport()->height()); QRectF visable_scene = use_view->mapToScene(原创 2021-12-05 13:41:47 · 2419 阅读 · 0 评论 -
QTableView删除自定义代理功能
Qt中并没有可以直接删除QTableView中的某个代理的功能,但我们可以使用QTableView原本默认的代理来替换后期我们自定义的代理,以此来实现删除自定义代理功能QAbstractItemDelegate* defaultdelegate = table->itemDelegateForRow(0);int rows = charModel->rowCount();for(int loop = 1; loop < rows ;loop ++){ QAbstractItem原创 2021-12-01 16:48:37 · 1195 阅读 · 0 评论 -
Qt中设置QGraphicsTextItem的文字居中显示
QGraphicsTextItem * textItem = new QGraphicsTextItem("文字",this);textItem->setTextWidth(200); //设置该图元框的宽度QTextBlockFormat format;format.setAlignment(Qt::AlignCenter); //此处设置居中显示,可自己选择具体格式QTextCursor cursor = textItem->textCursor();cursor原创 2021-11-19 18:13:03 · 2557 阅读 · 0 评论 -
Qt中设置QTableView的某列或某行只读
我的做法是实现一个委托(delegate),然后把它设给你要只读的列或行class ReadOnlyDelegate: public QItemDelegate{ public: ReadOnlyDelegate(QWidget *parent = NULL):QItemDelegate(parent) {} QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,con转载 2021-11-10 11:33:09 · 3197 阅读 · 2 评论 -
Qt中视图 场景 图元坐标的转换
场景坐标场景坐标是所有图元的基础坐标系统。场景坐标系统描述了顶层的图元,每个图元都有场景坐标和相应的包容框。场景坐标的原点在场景中心,坐标原点是X轴正方向向右,Y轴正方向向下。QGraphicsScene类的坐标系以中心为原点(0,0),如下图所示。视图坐标视图坐标是窗口部件的坐标。视图坐标的单位是像素。QGraphicsView视图的左上角是(0,0),X轴正方向向右,Y轴正方向向下。所有鼠标事件最开始都是使用视图坐标。QGraphicsView类继承自QWidget类,因此它与其他的额QWi原创 2021-11-03 19:19:23 · 3956 阅读 · 0 评论 -
Qt中对Scene中的图元进行放大缩小调整后部分区域还残留在Scene中的处理
问题在对GraphicScene中的图元进行放大缩小操作时,由于我操作的图元是GraphicItemGroup对象,自己组建的一个图元组,所以形状是不规则的,在进行放大后再缩小时的操作,会有一些区域因没有发生场景的碰撞所以会在scene中残留没有碰撞到的区域,即缩小后有一些在缩小之前的图元信息还在场景中没有被重绘掉,解决方案在调用图元的重绘函数之前,即在确定了图元的大小发生改变之后,应调用函数prepareGeometryChange()函数来使GraphicScene的索引保持最新状态,这样就不会出原创 2021-11-01 15:10:47 · 825 阅读 · 1 评论
分享