• 4927阅读
  • 3回复

[提问]GraphicsView绘图时,程序启动时设置背景图并显示,之后经某种触发引起的在背景上绘制图案没办法显示 [复制链接]

上一主题 下一主题
离线beyondhcy
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-15
大家好,本人初学Qt,请多多指教:


TerminalView::TerminalView()
{
    Screen_Width = QApplication::desktop()->width()-5; //屏幕的宽度
    Screen_Height = QApplication::desktop()->height()-5; //屏幕的高度
    view = new QGraphicsView(this);

    setBackgroundBrush(QImage("/opt/Show.jpg"));
    setSceneRect(0, 0, Screen_Width, Screen_Height);
    view->showMaximized();
}
以上是程序开始执行时,设置的显示背景图片,能正常显示图片


void TerminalView::Set_Car_Path(unsigned char CarID)
{
    CarID = 0;
        printf("TerminalView::Set_Car_Path ! \n");
        addLine(235,140,235,190);
        view->update();
        update();
}此处是在串口数据接收的一个槽函数,有数据打印,所以可以断定进来了这里执行
但是,这里对scene和view进行更新新增加的线条都没有显示,如果重新show,就会多出现一个对话框显示这条直线
希望大家帮帮忙,谢谢了~~
离线gaga0313

只看该作者 1楼 发表于: 2013-03-15
我曾经也遇到这个问题的  后来就不了了之了  哪位高人解答一下  


离线beyondhcy

只看该作者 2楼 发表于: 2013-03-15
各位路过的神明啊,请留下你们的脚步吧,谢谢了~~~
离线beyondhcy

只看该作者 3楼 发表于: 2013-04-07
回顾一下自己问的问题,自己来解决,看看可笑的最初;

void TerminalView::Set_Car_Path(unsigned char CarID)
{
    CarID = 0;
        printf("TerminalView::Set_Car_Path ! \n");
        addLine(235,140,235,190);
        view->update();
        update();
}

这里addLine根本就不属于这个场景,如果需要显示,用lineitem,把这条线添加到显示的场景中才可以显示,而且,有新操作,也不需要update了。
快速回复
限100 字节
 
上一个 下一个