引用第10楼daizb05于2009-05-31 16:11发表的 :
定义信号和槽,再定义鼠标事件就可以了,多看些小例子就会了
本人愚笨。。看了一些例子,可就是没有用鼠标拖动的。。唉,都折磨我好几天了。。
----------------------------------------------------------------------------------------------------------------------------------------
//这里是 ImageWidget 的类
ImageWidget::ImageWidget(QWidget *parent)
:QWidget(parent)
{
QDesktopWidget desktop;
pixmap = QPixmap(desktop.width(),desktop.height());
//这是创建QDesktopWidget desktop是什么用意? scale = 1;
angle = 0;
bFit = true;
}
void ImageWidget::paintEvent(QPaintEvent *event)
//还是不太清楚paintEvent的作用?{
QPainter painter(this);
painter.drawPixmap(0,0,pixmap);
}
----------------------------------------------------------------------------------------------------------------------------------------
//下面是主函数里实现放大缩小的两个方法
void MainWindow::zoomIn() //这是一个用来放大的函数
{
imageWidget->scale *= 1.25;
//这里的 imageWidget 是在主函数里创建的实例,这是用来作什么的? zoomInAct->setEnabled(imageWidget->scale < 3);
zoomOutAct->setEnabled(imageWidget->scale > 0.333);
imageWidget->resize(imageWidget->scale * scrollArea->size());
//再帮忙分析一下这个函数。}
void MainWindow::zoomOut() //这是用来缩小的
{
imageWidget->scale *= 0.8;
zoomInAct->setEnabled(imageWidget->scale < 3);
imageWidget->resize(imageWidget->scale * scrollArea->size());
}
----------------------------------------------------------------------------------------------------------------------------------------
上面几个疑点小弟不明白,请大侠们帮忙分析一下。谢谢了。
-
[ 此帖被robertkun在2009-06-01 08:47重新编辑 ]