当前位置: 代码迷 >> QT开发 >> 请问大牛。场景中添加视图Graphicsview 视图内的控件为何闪烁
  详细解决方案

请问大牛。场景中添加视图Graphicsview 视图内的控件为何闪烁

热度:12   发布时间:2016-04-25 04:23:16.0
请教大牛。。。场景中添加视图Graphicsview 视图内的控件为何闪烁?
示例代码如下:新建工程放入Mainwindow构造
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    resize(1000,500);
    /////////////////////////////////////////////////////////////////////body
    QGraphicsView *pBody = new QGraphicsView(this);

    QGraphicsScene *pSBody = new QGraphicsScene();

    pSBody->setSceneRect(0,0,800,400);
    pBody->setScene(pSBody);
    pBody->setGeometry(QRect(100,50,800,400));

    pBody->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    pBody->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    //无边框设置
    pBody->setFrameShape(QFrame::NoFrame);

    //设置背景透明
    pBody->setBackgroundRole(QPalette::Background);
    pBody->setPalette(QPalette(QColor(255,0,0,0)));

    pBody->setStyleSheet(QString("QGraphicsView{background-color:#66cc33;}"));
//////////////////////////////////////////////////////

    QGraphicsProxyWidget *pDivProxy = new QGraphicsProxyWidget();
    pDivProxy->setParent(pBody);

    QGraphicsView *pDiv = new QGraphicsView();

    QGraphicsScene *pSDiv = new QGraphicsScene();

    pSDiv->setSceneRect(0,0,600,200);
    pDiv->setScene(pSDiv);
    pDiv->resize(600,200);
    pDiv->setGeometry(QRect(100,100,600,200));
    pDiv->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    pDiv->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    pDiv->setStyleSheet(QString("QGraphicsView{background-color:#22ccFF;}"));


    //pDiv->setParent(pBody);
    pDiv->setObjectName("div");
    pDivProxy->setWidget(pDiv);
    pDivProxy->setGeometry(QRect(100,100,600,200));


    QGraphicsProxyWidget *pNumProxy = new QGraphicsProxyWidget();
    QGraphicsProxyWidget *pPowProxy = new QGraphicsProxyWidget();
    QGraphicsProxyWidget *pSumProxy = new QGraphicsProxyWidget();


    QLineEdit *pNum = new QLineEdit();
    QLineEdit *pPow = new QLineEdit();
    QLineEdit *pSum = new QLineEdit();

    pNumProxy->setWidget(pNum);
    pPowProxy->setWidget(pPow);
    pSumProxy->setWidget(pSum);


    pNumProxy->setGeometry(QRect(20,20,100,30));
    pPowProxy->setGeometry(QRect(20,60,100,30));
    pSumProxy->setGeometry(QRect(150,60,80,60));

    pNumProxy->setParent(pDivProxy);
    pPowProxy->setParent(pDivProxy);
    pSumProxy->setParent(pDivProxy);
////////////////////////////////////////////////////////////////////////////////////
    QGraphicsProxyWidget *pDivProxy1 = new QGraphicsProxyWidget();
  相关解决方案