Qt工作笔记-重写滚轮事件,实现界面的增加、减少(放大、缩小)
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-重写滚轮事件,实现界面的增加、减少(放大、缩小)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
只要關注一點:
滾輪事件里面有一個QWheelEvent
當他的y值大于0的時候,說明是往前滾;
y小于0說明是往后滾
?
程序運行截圖如下:
源碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected:void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;void extendWindowsSize();void shrinkWindowsSize();private:Ui::Widget *ui;int m_originalWidth;int m_originalHeight; };#endif // WIDGET_Hwidget.cpp
#include "widget.h" #include "ui_widget.h" #include <QPoint> #include <QWheelEvent>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("CSDN IT1995");m_originalWidth = this->width();m_originalHeight = this->height(); }Widget::~Widget() {delete ui; }void Widget::wheelEvent(QWheelEvent *event) {QWidget::wheelEvent(event);QPoint sroll = event->angleDelta();if(sroll.y() > 0)extendWindowsSize();elseshrinkWindowsSize(); }void Widget::extendWindowsSize() {if(this->width() > m_originalWidth + 300){return;}this->setMaximumSize(this->width() + 10, this->height() + 10);this->setMinimumSize(this->width() + 10, this->height() + 10); }void Widget::shrinkWindowsSize() {if(this->width() < m_originalWidth - 300){return;}//注意:順序不能顛倒this->setMinimumSize(this->width() - 10, this->height() - 10);this->setMaximumSize(this->width() - 10, this->height() - 10); }main.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }?
總結
以上是生活随笔為你收集整理的Qt工作笔记-重写滚轮事件,实现界面的增加、减少(放大、缩小)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习笔记-服务器端获取UDP封包源I
- 下一篇: C++工作笔记-作用域的巧妙使用,释放堆