linux qt bmp,QT编程问题(显示BMP图)

QT编程问题(显示BMP图)

编译环境是VC

在头文件中的声名

QVBox  *vb;

QScrollView*  sv;

我用如下方法在窗口中建一个QScrollView框sv

sv  =  new  QScrollView(this);//建QScrollView框sv

vb  =  new  QVBox(  sv->viewport()  );//建QVBox类vb并设定Viewport

sv->addChild(vb);

setCentralWidget(  sv  );//让sv充满窗口

之后在程序中用如下方法在vb中加载BMP图

void  Main:penfile()

{

QString  fn  =  QFileDialog::getOpenFileName(  QString::null,  tr(  "BMP-Files  (*.bmp  *.bmp);;All  Files  (*)"  ),  this  );

if  (  !fn.isEmpty()  )

{

logoimage.load(fn,  0);

vb->resize(logoimage.width(),logoimage.height());

}

}

可是,当我拖动QScrollView的滚动条时,QVBox中的BMP图就被QScrollView的边框给擦掉了,

我知道是重绘的问题,但是如何作呢?

求QT高手指点

多谢?

|

在楼主的代码的基础上做如下修改:

void autodraw();该句注释掉。

添加slot:

void myRepaint();

及其实现:

void Main::myRepaint()

{

paintEvent(0);

}

main类的最后添加:

connect(sv, SIGNAL(contentsMoving(int, int)), SLOT(myRepaint()));

编译后,拖动滚动条则重新刷新整个区域,图片显示没问题。

但是这种方法显示图片太过笨重,呵呵

不如自己重新实现一个类,或者用QLabel显示图形也是个简单的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值