找回密码
 立即注册
收起左侧

关于加载图片以后,拖动图片发生图片变形的情况,需求...

1
回复
6240
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2017-9-26 13:35:47 显示全部楼层 |阅读模式
1Qter豆
我这边通过qpixmap将多张图片拼接成一张图片以后,通过paintevent进行显示。同时分别在mousepress以及mousemove函数中加了拖动的相关代码。图片能够在我的主窗口进行拖动了。但是发现在拖动的过程中,整个图片会发生变形。横着拖,一旦图片一部分区域超出显示框了,那么剩下的就开始拉伸了。竖着拖,那么剩下的部分也是被横向拉伸了。请问这个是什么原因?

回复

使用道具 举报

累计签到:133 天
连续签到:1 天
2017-9-27 10:00:49 显示全部楼层
写代码看了下,没你说的问题呀?
  1. MainWindow::MainWindow(QWidget *parent) :
  2.     QMainWindow(parent),
  3.     ui(new Ui::MainWindow)
  4. {
  5.     ui->setupUi(this);
  6.     point=QPoint(0,0);
  7.     flag=false;
  8.     pixmap.load(":/Desert.jpg");
  9. }

  10. MainWindow::~MainWindow()
  11. {
  12.     delete ui;
  13. }
  14. void MainWindow::paintEvent(QPaintEvent *event)
  15. {
  16.     Q_UNUSED(event)
  17.     QPainter painter(this);
  18.     painter.drawPixmap(point.x(),point.y(),pixmap.width(),pixmap.height(),pixmap);
  19. }
  20. void MainWindow::mousePressEvent(QMouseEvent *event)
  21. {
  22.     if(event->button()==Qt::LeftButton)
  23.         flag=true;
  24. }
  25. void MainWindow::mouseMoveEvent(QMouseEvent *event)
  26. {
  27.     if(flag==true)
  28.     {
  29.         point=event->pos();
  30.         update();
  31.     }
  32. }
  33. void MainWindow::mouseReleaseEvent(QMouseEvent *event)
  34. {
  35.     if(event->button()==Qt::LeftButton)
  36.         flag=false;
  37. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了