⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calibration.cpp

📁 QT 开发环境里面一个很重要的文件
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2006-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "calibration.h"#include <QWSPointerCalibrationData>#include <QPainter>#include <QFile>#include <QTimer>#include <QApplication>#include <QDesktopWidget>#include <QMouseEvent>#include <QScreen>#include <QWSServer>Calibration::Calibration(){    QRect desktop = QApplication::desktop()->geometry();    desktop.moveTo(QPoint(0, 0));    setGeometry(desktop);    setFocusPolicy(Qt::StrongFocus);    setFocus();    setModal(true);    int width = qt_screen->deviceWidth();    int height = qt_screen->deviceHeight();    int dx = width / 10;    int dy = height / 10;    QPoint *points = data.screenPoints;    points[QWSPointerCalibrationData::TopLeft] = QPoint(dx, dy);    points[QWSPointerCalibrationData::BottomLeft] = QPoint(dx, height - dy);    points[QWSPointerCalibrationData::BottomRight] = QPoint(width - dx, height - dy);    points[QWSPointerCalibrationData::TopRight] = QPoint(width - dx, dy);    points[QWSPointerCalibrationData::Center] = QPoint(width / 2, height / 2);    pressCount = 0;}Calibration::~Calibration(){}int Calibration::exec(){    QWSServer::mouseHandler()->clearCalibration();    grabMouse();    activateWindow();    int ret = QDialog::exec();    releaseMouse();    return ret;}void Calibration::paintEvent(QPaintEvent*){    QPainter p(this);    p.fillRect(rect(), Qt::white);    QPoint point = data.screenPoints[pressCount];    // Map to logical coordinates in case the screen is transformed    QSize screenSize(qt_screen->deviceWidth(), qt_screen->deviceHeight());    point = qt_screen->mapFromDevice(point, screenSize);    p.fillRect(point.x() - 6, point.y() - 1, 13, 3, Qt::black);    p.fillRect(point.x() - 1, point.y() - 6, 3, 13, Qt::black);}void Calibration::mouseReleaseEvent(QMouseEvent *event){    // Map from device coordinates in case the screen is transformed    QSize screenSize(qt_screen->width(), qt_screen->height());    QPoint p = qt_screen->mapToDevice(event->pos(), screenSize);    data.devPoints[pressCount] = p;    if (++pressCount < 5)        repaint();    else        accept();}void Calibration::accept(){    Q_ASSERT(pressCount == 5);    QWSServer::mouseHandler()->calibrate(&data);    QDialog::accept();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -