Qt怎么判断qgraphicsview在父窗口的视口里

我在widget里放三个qgraphicsview,现在想移动不在视口里的qgraphicsview。求高人解答~~谢谢~

2个回答

我的这个widget是QScrollArea里的widget,所以说应该判断QScrollArea的视口和qgraphicsview是否相交,但是我用的QRect::intersects似乎并不好用

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT QGraphicsView
我知道怎么为QGraphicsView设置背景图,而且还可以更换?希望大家能够给我提供一些思路想法,谢谢。
QT QGraphicsView 透明背景和边框
view->setStyleSheet("padding:0px;border:0px");
Qt绘图 QGraphicsView
使用 QGraphicsView、QGraphicsScene、QGraphicsItem进行简单的缩放,移动,旋转
QT中QGraphicsView窗口滑动
借用QT中的QGraphicsView类实现窗口滑动
怎么判断有没有父窗口啊?
如题
qgraphicsview 怎么实现平移
1、m_view->translate(dx,dy);用这个函数平移;但地图缩小后就不能平移了 rn 2、rect.setX((int)mrect.x() - (int)offset.x());rn rect.setY((int)mrect.y() - (int)offset.y());rn setSceneRect(rect);rn用这种方式平移 ,影响了缩放当缩放到到某个值时 图形消失rn3、qgraphicsview 中修改 m31,m32来平移没效果rn 求救各位网友 有什么好的解决方案
怎么移动QGraphicsView
我想移动QGraphicsViewrn调用translate方法rn怎么不起作用,没有移动。rnrn其实我想实现按住鼠标中键移动View的功能?rnrn各位大神 有木有知道的啥?
qgraphicsview
qgraphicsview封装成表格的形式,根据row 和column 来设置控件的位置
在视图里怎么使用IF判断
我想建一个视图,统计班级人数rnselect 班级编号,count(*) as 人数 from 学生基本信息表 group by 班级编号rnif count(*)>30 set @班级名称='大班'rnif count(*)<30 set @班级名称='小班'rnrn怎么能用视图实现给班级名称赋值rn即 select 班级编号,count(*) as 人数,@班级名称 from 学生基本信息表 group by 班级编号rn
怎么刷新父窗口的父窗口?
现有页面a.asp,点击里面的内容在_blank状态下进入b.asp,在b.asp里,填写表单,提交弹出窗口提示:“信息已经提交!关闭窗口”。rn我的问题是想在关闭alert弹出窗口的时候,同时关闭b.asp,并同步刷新a.asp页面。rn关于同步刷新父窗口的代码网上有,可是这个父窗口的父窗口的刷新怎么实现呢?
QT:容器窗口(父窗口)
容器窗口(父窗口)与滑块 1. 如果一个组件创建时指定了父窗口,那么就将停靠在父窗口上,如果不指定父窗口,它就会飘在外面,形成独立的窗体。 2. 常用父窗口类:     QWidget             // 默认大一些     QMainWindow     // 默认小一些     QDialog             // 对话框窗口,大一些,顶栏只有关闭按钮x
Qt QGraphicsView 平滑直线及折线处优化
最近的一个项目,类似画图工具的画笔,下面是我们自己开发的画笔效果:rn[img=https://img-bbs.csdn.net/upload/201402/13/1392254528_540954.jpg][/img]rnrn图片是由bmp转为jpg的,所以有点模糊,已经反锯齿处理,包括在拐角处(就是线的起点和终点的链接处)也做了圆处理。效果是通过QPainterPath来实现的。最后将直线转换为一个polygonF来添加到画板rnrn现在问题就是感觉线还不是很平滑,尤其在连接处有比较明显的折线,不知道这些问题怎么修复。最好在提供一些相关的参考案例或者代码
Qt使用QGraphicsView实现滑动窗体效果
由于作者不习惯该编辑器,只是贴出上本文的截图,详见:https://www.yuque.com/docs/sh...
QT QGraphicsView、QGraphicsScene和QGraphicsItem和OpenGL的使用问题
请教一个问题:是关于QT中 QGraphicsView、QGraphicsScene和QGraphicsItem使用的问题。rn假设:我做一个游戏,在游戏中存在三个物体,自定义了3个QGraphicsItem子类,每个子类中都在paint函数中都使用OpenGL描画各自的一个物体。目前就我所知道的机制是当QGraphicsScene有变化时,会把事件传送给每个QGraphicsItem;假如三个物体只有一个物体需要对描画的内容改变,那么按现有的机制三个QGraphicsItem的paint函数都会被调用到,也就是说其他两个QGraphicsItem也被重新描画了,其实这是浪费性能的,因为其他两个物体并不需要重新描画,只要保持之前的图画就可以了。rnrn我式过在其他两个QGraphicsItem的paint函数被调用时我什么也不做,那样也是不行的,如果不重新描画,这两个QGraphicsItem之前的图就没有了。rnrn想请教一下怎么可以解决这个问题,即当有一个QGraphicsItem需要变化时,其他QGraphicsItem不重新描画也可以保持之前的图像?rnrn如果能解决我的问题,我可以再加分,谢谢!
Qt使用QGraphicsView实现滑动窗体效果
QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容。QGraphicsScene提供了QGraphicsItem的容器功能。通常与QGraphicsView一起使用来描述可视化图形项目。 QGraphicsScene提供了一个视图的场景,通过在这样一个场景之上加入不同的QGraphicsItem来构建视图。而QGraphicsView则提供了一个widget来显示QGraphicsScene的内容。所以要想成功构建一个视图,这三个元素缺一不可。 以下是一个QGraphicsView的例子,实现滑动的窗体效果,工具栏和图片均为场景中的Item。
qt 在QGraphicsView中创建可活动的对话框
QGraphicsScene *scene = new QGraphicsScene(); scene-&amp;gt;setSceneRect(0, 0, 800, 600); ui.scence-&amp;gt;setScene(scene); QGraphicsWidget *w = new QGraphicsWidget(0, Qt::Window); w-&amp;gt;setPos(0, 0...
QT QGraphicsView update 实时刷新问题
大家好,遇到个问题,车标根据收到的经纬度信息更新位置,发现更新的频率大概是1s更新一次,实际设置的时间是200ms。rn设置了下面两种方法,都无效果,求助rn1.this->viewport()->repaint(0,0,320,180);rn2.this->viewport()->update();rnrnbool g_test = true;rngraphicsView::graphicsView()rnrn if(SHAPEMANAGE_SING->readlayer())rn rn SHAPEMANAGE_SING->initData();rn if(g_test)rn rn SHAPEMANAGE_SING->testData();rn rn rn m_pos = 0;rn m_scare = 5;rn m_ni = 0;rn m_graphicsScene = new QGraphicsScene;rn // m_graphicsScene->setBackgroundBrush(Qt::black);rn setFrameStyle(QFrame::NoFrame);rn m_graphicsScene->setSceneRect(0, 0, 320, 180);rn // setBackgroundBrush(Qt::black);rn setAlignment(Qt::AlignCenter);rn setRenderHint(QPainter::Antialiasing, false);rn setDragMode(QGraphicsView::ScrollHandDrag);rn setOptimizationFlags(QGraphicsView::DontSavePainterState);rn setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);rn setTransformationAnchor(QGraphicsView::AnchorUnderMouse);rn setWindowFlags(Qt::FramelessWindowHint);rn setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);rn setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);rnrnrn setScene(m_graphicsScene);rn populateScene();rn QTimer *timer = new QTimer(this);rn connect(timer, SIGNAL(timeout()), this, SLOT(handleOutTiemr()));rn timer->start(200);rnrnrnvoid graphicsView::handleOutTiemr()rnrnrn m_graphicsScene->clear();rn populateScene();rnrn if(g_test)rn rn if(m_pos >= 0 && m_pos < SHAPEMANAGE_SING->m_testPos.length())rn rn dataPoint carPos;rn carPos.latitude = SHAPEMANAGE_SING->Singleton()->m_testPos.value(m_pos).X;rn carPos.longitude = SHAPEMANAGE_SING->Singleton()->m_testPos.value(m_pos).Y;rn //qDebug("x %f, y %f",carPos.latitude,carPos.longitude);rn SHAPE_DATAMANAGE->setCarPos(carPos);rn m_pos ++;rn rn elsern rn m_pos = 0;rn rn rn// 下面两种刷新都无效果rn// this->viewport()->repaint(0,0,320,180);rn// this->viewport()->update();rnrnrn
Qt中QGraphicsView QGraphicsScene QGraphicsRectItem的问题
#include rnrn#include rn#include rn#include rnrnrnint main(int argc, char *argv[])rnrn QApplication a(argc, argv);rnrn QGraphicsView v;rn v.setGeometry(300, 200, 800, 480);rnrn v.show();rn QGraphicsScene *scene = new QGraphicsScene();rn scene->setSceneRect(0, 0, 800, 480);rn v.setScene(scene);rnrn QGraphicsRectItem *item = new QGraphicsRectItem(200, 0, 400, 400, 0, scene);rn item->setBrush(QBrush(QColor(255, 0, 0)));rn QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, 100, 100, item, 0);rn item1->setBrush(QBrush(QColor(255, 255, 0)));rn rn return a.exec();rnrnrn代码中,我明明为item1指定了item为它的父item,为什么显示的时候item1还是显示在了场景的(0, 0)位置,而不是item上的(0, 0)位置。如果调用item->hide();item1也会跟着消失,说明父item是设置成功了,但是显示为什么是这样?
实现qt QGraphicsView放大缩小功能的类
实现qt QGraphicsView放大缩小功能的类,不用继承QGraphicsView,只需要在该类中设置要实现放大缩小的QGraphicsView对象即可。
Qt中QGraphicsView使图像自适应窗口大小
fd=QFileDialog(self) filePath=fd.getOpenFileName()[0]#获取图片路径 self.item=QGraphicsPixmapItem(QPixmap(filePath)) self.scene=QGraphicsScene() self.scene.addItem(self.item) self.graphicsView.setScene(...
Qt 使用QGraphicsView如何显示自己定义QGraphicsItem
小弟正在学习Qt画图(Qt版本4.8.1),最初使用QPainter直接在QMainWindows上绘图,继而是QGraphicsView视图框架,我在网上看了很多关于QGraphicsView、QGraphicsScene和QGraphicsItem框架文章,但大都是众说一词、换汤不换药,总体上可以理解三者之间的关系,但是当实际编写代码时问题就来了:rn@一@.首先,我使用图形编辑器往主窗口上拖了一个QGraphicsView(取名 my_view)控件,在主程序窗口的某一个事件处理函数中声明了一个: QGraphicsScene my_scene;rn然后添加代码:rnmy_sence.addText("Test");rnui->my_view->setScene(&my_scene);rn接着开始调试,于是主窗体的QGraphicsView正中央显示出字符串“Test”。再接着,我声明了一个:rnQPixmap my_image;rn接着,往QPixmap中加载图片:rnmy_image.load("d:\\test.png");rn注释掉之前的 my_sence.addText("Test") 后,在其下一行添加了代码行:rnmy_sence.addPixmap(my_image);rn其他的不作更改,按F5,主窗体的QGraphicsView正中央显示出图片“test.png”;rn这些都没有什么问题。接下来,我想利用QGraphicsItem绘图。rn@二@.接着,我自定义了一个MyItem的类,继承自QGraphicsItem,重新能够实现了两个虚函数:rnQRectF boundingRect()const;rnvoid paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);rnboundingRect的返回值为QRectF(0,0,400,400);rn我在paint函数中简单的使用 painter->drawLine(0,0,200,200)画一条直线。rn仿照 @一@ 的描述,我使用了如下代码:rnMyItem item;rnmy_sence.addItem(&item);rnmy_view.setScene(&my_scene);rn调试之后发现窗口的QGraphicsView里面什么都没有,这是为什么呢?是不是我还有没有实现的虚函数?或者是我调用的方法不对还是其他什么原因呢?
QT中使用场景(QGraphicsScene)+视图(QGraphicsView)
我想在场景中增加背景图片,且设置背景图片为缩放显示。使用setBackgroundBrush函数默认是平铺,请大家给我提供好的建议,万分感谢!
Qt 中QGraphicsView 与QGraphicsScene的一些疑问
各位大侠好,据各种网络上资料所知,QGraphicsScene主要用于负责管理存储各种内部的Item,而QGraphicsView 则负责显示出来,所以一个QGraphicsScene可以对应多个QGraphicsView 。那么我有个问,想请教下:rnrn如果在一个QGraphicsScene中有10个具体的Item,并且有两个QGraphicsView 对应这个QGraphicsScene。rn我期望在第一个QGraphicsView 中显示前5个Item,而在第二个QGraphicsView 显示后5个Item。rnrn请问是否这样实现方式,还是压根我思想就是错误的?我希望只有一个数据源。rnrn以上rn在线等。谢谢rnrnrn
怎么判断一个窗口是否有父窗口?
如上.
子窗口怎么判断父窗口是否已经关闭?
语句结构如下:rnrn点击子窗口一个连接,判断父窗口是否已经关闭,如果父窗口没有关闭,将它关闭。
怎么在父窗口判断子窗口有没有值?
rn rnrn rn *病例名称:rn rn rn rn 手术影像:rn frameBorder=0 width=400 scrolling=no height=100>rn rnrn rn rn rn rn rnrn问题:要怎么样才能在function Check()中判断手术影像IFRAME中上传了文件啊?rnrnrn这个小外包单从年前忙到现在,时间紧迫,再晚了估计近一个月白忙活了,还请知道的给说一声,谢谢了!!rn我的EMAIL:koolaysun#yahoo.com.cnrnrnrnrn下面是upfile6.asp的代码rnrn<% on error resume next%>rn rn rn rn<%rn dim actrn act = request("act")rn rn sub err_msg(message)%>rn rn rn <%response.Endrn end subrn rn select case actrn case "up" '上传文件rnrn if session("Accessories6List6") = Empty thenrn dim Accessories6List6rn end ifrn rn dim fso,strDir,ftime,FileUp,FullPath,typesrn rn Set fso = Server.CreateObject("Scripting.FileSystemObject")rn strDir="./upfile/translation/"&""rn if not fso.folderexists(Server.MapPath(strDir)) then fso.CreateFolder(Server.MapPath(strDir))rn rn randomizern dim srn s = cstr(Int(Rnd()*(99999-10100+1))+10100)rn ftime=""&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now) & s &""rn rn set fso = nothingrn FileName=now()'开始取文件名rnFileName=replace(FileName,"-","")rnFileName=replace(FileName,":","")rnFileName=replace(FileName," ","")rnFileName=FileName+rndNum(4)rnOn Error Resume Nextrn Set FileUP = Server.CreateObject("Persits.Upload")rn FileUP.SetMaxSize 1000000, Truern FileUP.Savern 'if FileUP.TotalBytes = 0 then err_msg("当前文件为空文件。")rn Set File = FileUP.Files("in_v")rn rn ext=LCase(right(file.ext,len(file.ext)-1))rn if ext="" thenrn err_msg("当前文件为空文件。")rn end ifrnrn if file.ext<>".wmv" and file.ext<>".mpg" and file.ext<>".wav" and file.ext<>".mp3" and file.ext<>".wma" and file.ext<>".mpeg" thenrn err_msg("只允许上传wmv|mpg|wav|mp3|wma类型文件。")rnrn end ifrnrn FullPath="./upfile/translation/"rn 'types=mid(FullPath,InStrRev(FullPath, ".")+1)rn 'types=LCase(types)rnrn filename=filename+"."+extrn 'File.SaveAs Server.mappath(""&filename&"")rn rnFile.SaveAs "K:\case\upfile\translation\" & Filename rnrn if session("Accessories6List6") <> "" thenrn session("Accessories6List6") = session("Accessories6List6") & "|"rn end ifrn session("Accessories6List6") = session("Accessories6List6") &filenamernrn case "delete" '删除文件rn dim sfile,sfilenamern sfile = request("file")rn sfilename = server.mappath("../upfile/translation") & "\" & sfilern set fso = Server.CreateObject("Scripting.FileSystemObject")rn if fso.FileExists(sfilename) thenrn fso.DeleteFile sfilenamern end ifrn File.DeleteFile "K:\case\upfile\translation"&FileNamern set fso = nothingrn session("Accessories6List6") = replace(session("Accessories6List6"),sfile,"")rn session("Accessories6List6") = replace(session("Accessories6List6"),"||","|")rn 'response.Write(session("Accessories6List6"))rn 'response.End()rn end select%>rnrn rnrn rn rn rn rn rn rn rn rn rn rnrn <%if act = "up" or act = "delete" or act = "modify" thenrn dim irn Accessories6List6 = split(session("Accessories6List6"),"|")rn for i = 0 to ubound(Accessories6List6)rn if trim(Accessories6List6(i)) <> "" then%>rn <%=Accessories6List6(i)%>rn <%end ifrn nextrn elsern session.Contents.Remove("Accessories6List6")rn end if%>rn rn rn rn rnrn
如何判断父窗口的状态
rn打开了一个子窗体后,当更新父窗体的时候,由于父窗体已被关闭,就由于出错停了下来!rnrn请问如何判断父窗体的状态
QGraphicsView 坐标系统
我定义了一个QGraphicsView 的子类,view,想在其上进行绘图rn代码如下:rn QGraphicsScene* scene = new QGraphicsScene;rn scene->addText("Hello, Tab2!");rn scene->addRect(QRectF(0,0,100,100));rn scene->addLine(QLineF(QPoint(0,0),QPoint(100,100))) ;rn rn view->setScene(scene);rn QHBoxLayout* layput = new QHBoxLayout;rn layput->addWidget(view);rn setLayout(layput);rn但是我现在绘制出来的无论是text、line还是rect都不是在屏幕的左上角,而是基本在居中的地方,请问这是为什么。。。rn
QGraphicsView的滚动条
写了个QGraphicsView的子类MyGraphicsView,在构造函数里面setScene,Scene的大小大于MyGraphicsView的大小,于是运行时MyGraphicsView上会出现滚动条,滚动条的滑块(包括垂直滚动条和水平滚动条)在滚动条的中间。rnrn现在的问题是,我想通过代码来移动MyGraphicsView的滚动条滑块,来控制MyGraphicsView所显示Scene的区域,但是找不到滚动的函数。rnrnQT这东西,封装的比MFC好很多,但也正是因为封装的好,很多细节的东西,往往找半天也找不到答案。虽然开源了,但是真的去看QT的源码,又会发现东西太多。。。
QGraphicsView 图层
请问如何通过QGraphicsview来进行分层显示。rn例如:我有4张图,有可能显示1张,也有可能显示2张,若是多于1张图层同时显示的话怎么做?rnQGraphicsView只能设置一个QGraphicsScene啊。rn
QGraphicsScene 和QGraphicsView
QT的examples中,有个animation的例子是moveblocks,我想请问,在这个例子中,我想加入按键的响应的话,应该怎么加?rn里面用到了QGraphicsScene 和QGraphicsView,应该重写谁的keyPressEvent?rn下面是它的完整的代码。rnrn#include rn#include rnrn//![15]rnclass StateSwitchEvent: public QEventrnrnpublic:rn StateSwitchEvent()rn : QEvent(Type(StateSwitchType))rn rn rnrn StateSwitchEvent(int rand)rn : QEvent(Type(StateSwitchType)),rn m_rand(rand)rn rn rnrn enum StateSwitchType = QEvent::User + 256 ;rnrn int rand() const return m_rand; rnrnprivate:rn int m_rand;rn;rn//![15]rnrn//![16]rnclass QGraphicsRectWidget : public QGraphicsWidgetrnrnpublic:rn void paint(QPainter *painter, const QStyleOptionGraphicsItem *,rn QWidget *)rn rn painter->fillRect(rect(), Qt::blue);rn rn;rn//![16]rnrnclass StateSwitchTransition: public QAbstractTransitionrnrnpublic:rn StateSwitchTransition(int rand)rn : QAbstractTransition(),rn m_rand(rand)rn rn rnrnprotected:rn//![14]rn virtual bool eventTest(QEvent *event)rn rn return (event->type() == QEvent::Type(StateSwitchEvent::StateSwitchType))rn && (static_cast(event)->rand() == m_rand);rn rn//![14]rnrn virtual void onTransition(QEvent *) rnrnprivate:rn int m_rand;rn;rnrn//![10]rnclass StateSwitcher : public QStaternrn Q_OBJECTrnpublic:rn StateSwitcher(QStateMachine *machine)rn : QState(machine), m_stateCount(0), m_lastIndex(0)rn rn//![10]rnrn//![11]rn virtual void onEntry(QEvent *)rn rn int n;rn while ((n = (qrand() % m_stateCount + 1)) == m_lastIndex)rn rn m_lastIndex = n;rn machine()->postEvent(new StateSwitchEvent(n));rn rn virtual void onExit(QEvent *) rn//![11]rnrn//![12]rn void addState(QState *state, QAbstractAnimation *animation) rn StateSwitchTransition *trans = new StateSwitchTransition(++m_stateCount);rn trans->setTargetState(state);rn addTransition(trans);rn trans->addAnimation(animation);rn rn//![12]rnrnprivate:rn int m_stateCount;rn int m_lastIndex;rn;rnrn//![13]rnQState *createGeometryState(QObject *w1, const QRect &rect1,rn QObject *w2, const QRect &rect2,rn QObject *w3, const QRect &rect3,rn QObject *w4, const QRect &rect4,rn QState *parent)rnrn QState *result = new QState(parent);rn result->assignProperty(w1, "geometry", rect1);rn result->assignProperty(w2, "geometry", rect2);rn result->assignProperty(w3, "geometry", rect3);rn result->assignProperty(w4, "geometry", rect4);rnrn return result;rnrn//![13]rnrnint main(int argc, char **argv)rnrn QApplication app(argc, argv);rnrn#if 0rn QWidget window;rn QPalette palette;rn palette.setBrush(QPalette::Window, Qt::black);rn window.setPalette(palette);rn QPushButton *button1 = new QPushButton("A", &window);rn QPushButton *button2 = new QPushButton("B", &window);rn QPushButton *button3 = new QPushButton("C", &window);rn QPushButton *button4 = new QPushButton("D", &window);rnrn button1->setObjectName("button1");rn button2->setObjectName("button2");rn button3->setObjectName("button3");rn button4->setObjectName("button4");rn#elsern//![1]rn QGraphicsRectWidget *button1 = new QGraphicsRectWidget;rn QGraphicsRectWidget *button2 = new QGraphicsRectWidget;rn QGraphicsRectWidget *button3 = new QGraphicsRectWidget;rn QGraphicsRectWidget *button4 = new QGraphicsRectWidget;rn button2->setZValue(1);rn button3->setZValue(2);rn button4->setZValue(3);rn QGraphicsScene scene(0, 0, 300, 300);rn scene.setBackgroundBrush(Qt::black);rn scene.addItem(button1);rn scene.addItem(button2);rn scene.addItem(button3);rn scene.addItem(button4);rn//![1]rn QGraphicsView window(&scene);rn window.setFrameStyle(0);rn window.setAlignment(Qt::AlignLeft | Qt::AlignTop);rn window.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);rn window.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);rn#endifrn//![2]rn QStateMachine machine;rnrn QState *group = new QState();rn group->setObjectName("group");rn QTimer timer;rn timer.setInterval(1250);rn timer.setSingleShot(true);rn QObject::connect(group, SIGNAL(entered()), &timer, SLOT(start()));rn//![2]rnrn//![3]rn QState *state1;rn QState *state2;rn QState *state3;rn QState *state4;rn QState *state5;rn QState *state6;rn QState *state7;rnrn state1 = createGeometryState(button1, QRect(100, 0, 50, 50),rn button2, QRect(150, 0, 50, 50),rn button3, QRect(200, 0, 50, 50),rn button4, QRect(250, 0, 50, 50),rn group);rn//![3]rn state2 = createGeometryState(button1, QRect(250, 100, 50, 50),rn button2, QRect(250, 150, 50, 50),rn button3, QRect(250, 200, 50, 50),rn button4, QRect(250, 250, 50, 50),rn group);rn state3 = createGeometryState(button1, QRect(150, 250, 50, 50),rn button2, QRect(100, 250, 50, 50),rn button3, QRect(50, 250, 50, 50),rn button4, QRect(0, 250, 50, 50),rn group);rn state4 = createGeometryState(button1, QRect(0, 150, 50, 50),rn button2, QRect(0, 100, 50, 50),rn button3, QRect(0, 50, 50, 50),rn button4, QRect(0, 0, 50, 50),rn group);rn state5 = createGeometryState(button1, QRect(100, 100, 50, 50),rn button2, QRect(150, 100, 50, 50),rn button3, QRect(100, 150, 50, 50),rn button4, QRect(150, 150, 50, 50),rn group);rn state6 = createGeometryState(button1, QRect(50, 50, 50, 50),rn button2, QRect(200, 50, 50, 50),rn button3, QRect(50, 200, 50, 50),rn button4, QRect(200, 200, 50, 50),rn group);rn//![4]rn state7 = createGeometryState(button1, QRect(0, 0, 50, 50),rn button2, QRect(250, 0, 50, 50),rn button3, QRect(0, 250, 50, 50),rn button4, QRect(250, 250, 50, 50),rn group);rn group->setInitialState(state1);rn//![4]rnrn//![5]rn QParallelAnimationGroup animationGroup;rn QSequentialAnimationGroup *subGroup;rnrn QPropertyAnimation *anim = new QPropertyAnimation(button4, "geometry");rn anim->setDuration(1000);rn anim->setEasingCurve(QEasingCurve::OutElastic);rn animationGroup.addAnimation(anim);rn//![5]rnrn//![6]rn subGroup = new QSequentialAnimationGroup(&animationGroup);rn subGroup->addPause(100);rn anim = new QPropertyAnimation(button3, "geometry");rn anim->setDuration(1000);rn anim->setEasingCurve(QEasingCurve::OutElastic);rn subGroup->addAnimation(anim);rn//![6]rnrn subGroup = new QSequentialAnimationGroup(&animationGroup);rn subGroup->addPause(150);rn anim = new QPropertyAnimation(button2, "geometry");rn anim->setDuration(1000);rn anim->setEasingCurve(QEasingCurve::OutElastic);rn subGroup->addAnimation(anim);rnrn subGroup = new QSequentialAnimationGroup(&animationGroup);rn subGroup->addPause(200);rn anim = new QPropertyAnimation(button1, "geometry");rn anim->setDuration(1000);rn anim->setEasingCurve(QEasingCurve::OutElastic);rn subGroup->addAnimation(anim);rnrn//![7]rn StateSwitcher *stateSwitcher = new StateSwitcher(&machine);rn stateSwitcher->setObjectName("stateSwitcher");rn group->addTransition(&timer, SIGNAL(timeout()), stateSwitcher);rn stateSwitcher->addState(state1, &animationGroup);rn stateSwitcher->addState(state2, &animationGroup);rn//![7]rn stateSwitcher->addState(state3, &animationGroup);rn stateSwitcher->addState(state4, &animationGroup);rn stateSwitcher->addState(state5, &animationGroup);rn stateSwitcher->addState(state6, &animationGroup);rn//![8]rn stateSwitcher->addState(state7, &animationGroup);rn//![8]rnrn//![9]rn machine.addState(group);rn machine.setInitialState(group);rn machine.start();rn//![9]rnrn window.resize(300, 300);rn window.show();rnrn qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));rnrn return app.exec();rnrnrn#include "main.moc"rn
QGraphicsView问题、
我想实现以下功能:rn首先是输入x、y;rn然后绘制x*y个白色矩形;rn点击白色矩形后,白色矩形会变为红色。rnrn思路是:rn建一个x*y的布尔数组,用于标记矩形的颜色。rn点击矩形是对相应的变量进行!操作,从而实现变色。rnrn再具体一些就是建QGraphicsView,向里面加入QGraphicsRectItem,rn重载QGraphicsRectItem::mouseReleaseEvent();rnrn唯一的问题是... 我不会实现、、rn是在MainWindow中绘图,求实现代码。
Qt 子窗口与父窗口背景图片保持一致
在子窗口的样式表中添加 backgroud: transparent; 或者是调用子窗口函数 childWidget-&amp;amp;amp;gt;setStyleSheet(&amp;amp;quot;backgroud: transparent&amp;amp;quot;);
怎么在窗口里插入图片
想要实现闪屏的效果 本人初学者 很多还是不懂的 谢谢各位指教指教
QT父窗口收到子窗口的信号
这个是子窗口里面的 signals: void sonMsg(const QString&); public slots://这个不用实现 void sendMsg() { QString s="suibianshenme"; emit  sonMsg(s); } 随便弄个按钮 connect(bt,SIGNAL(click),this,SLOT(sendMsg()));
Qt实现子窗口传值到父窗口
不同窗口间的数值传递主要有三种方法: 1)使用Qt中的Signal&amp;Slot机制进行传值 2) 使用public形式的函数接口进行传值 3) 使用全局变量进行传值 这里基于https://blog.csdn.net/bruce_0712/article/details/53700397中的例子,整理调试通过后,采用了第一种方法实现了这个功能。代码没有采用UI方式拖拽控件,控件都...
QT 子窗口和父窗口之间传输数据
子窗体类中定义: signals: void sendMapValue(QStringList); //发送信号 传递信息 QStringList为参数类型 父窗口中定义: private slots: void receiveMapValue(QStringList); //得到地图地址 子窗口和父窗口定义的发送方法和接受方法的参数类型和数量应该相同   父窗口...
QT学习——父窗口,信号和槽机制
一、父窗口(容器窗口) 1.概念:创建控件时可以指定停靠在父窗口上,如果没有指定,则飘在外面形成独立的窗体,父窗口本质也是图形控件,常用于表示父窗口类主要包括如下三个: QWidget QDialog(对话框) QMainWindow(主窗口) 注:QWidget和它的所有子类都可以作为父窗口,但是常用的父窗口类只有上面三个 参考代码: #include &lt;QApplicat...
Qt之弹出界面显示在父窗口中间
弹出界面显示在主窗口中间博主暂时只知道两种方式第一种:    创建新的对话框时把父窗口的指针传递给对话框    QNewDiglog *dlg  = new QNewDiglog(parent);    dlg-&amp;gt;show();    弹出的对话框就会自动显示在父窗口的中间第二种:    创建新对话框时获取父窗口的指针,再获取父窗口原点坐标,计算显示的位置     QWidget *widg...
QT子窗口相应影响父窗口
想用QT实现一个程序,在主窗口中有两个按钮,其中一个开始时禁用,当点击另外一个按钮的时候弹出子窗口,子窗口上有一个按钮,点击此按钮,子窗口关闭,关闭的同时主窗口上的禁用按钮被启用。现在不知道如何将关闭窗口的事件和按钮启用事件想关联起来,怎么才能实现呢?哪位大侠,帮帮我呢?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/8.gif][/img]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池