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

📄 versiondialog.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.**** This file is part of the Qt Designer 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 <QtCore/QVector>#include <QtGui/QMouseEvent>#include <QtGui/QGridLayout>#include <QtGui/QLabel>#include <QtGui/QPushButton>#include <QtGui/QPainter>#include <QtGui/QPainterPath>#include <QtGui/QStyleOption>#include "versiondialog.h"class VersionLabel : public QLabel{    Q_OBJECTpublic:    VersionLabel(QWidget *parent = 0);signals:    void triggered();protected:    void mousePressEvent(QMouseEvent *me);    void mouseMoveEvent(QMouseEvent *me);    void mouseReleaseEvent(QMouseEvent *me);    void paintEvent(QPaintEvent *pe);private:    QVector<QPoint> hitPoints;    QVector<QPoint> missPoints;    QPainterPath m_path;    bool secondStage;    bool m_pushed;};VersionLabel::VersionLabel(QWidget *parent)        : QLabel(parent), secondStage(false), m_pushed(false){    setPixmap(QPixmap(":/trolltech/designer/images/designer.png"));    hitPoints.append(QPoint(56, 25));    hitPoints.append(QPoint(29, 55));    hitPoints.append(QPoint(56, 87));    hitPoints.append(QPoint(82, 55));    hitPoints.append(QPoint(58, 56));    secondStage = false;    m_pushed = false;}void VersionLabel::mousePressEvent(QMouseEvent *me){    if (me->button() == Qt::LeftButton) {        if (!secondStage) {            m_path = QPainterPath(me->pos());        } else {            m_pushed = true;            update();        }    }}void VersionLabel::mouseMoveEvent(QMouseEvent *me){    if (me->buttons() & Qt::LeftButton)        if (!secondStage)            m_path.lineTo(me->pos());}void VersionLabel::mouseReleaseEvent(QMouseEvent *me){    if (me->button() == Qt::LeftButton) {        if (!secondStage) {            m_path.lineTo(me->pos());            bool gotIt = true;            QPoint pt;            foreach(pt, hitPoints) {                if (!m_path.contains(pt)) {                    gotIt = false;                    break;                }            }            if (gotIt) {                foreach(pt, missPoints) {                    if (m_path.contains(pt)) {                        gotIt = false;                        break;                    }                }            }            if (gotIt && !secondStage) {                secondStage = true;                m_path = QPainterPath();                update();            }        } else {            m_pushed = false;            update();            emit triggered();        }    }}void VersionLabel::paintEvent(QPaintEvent *pe){    if (secondStage) {        QPainter p(this);        QStyleOptionButton opt;        opt.init(this);        if (!m_pushed)            opt.state |= QStyle::State_Raised;        else            opt.state |= QStyle::State_Sunken;        opt.state &= ~QStyle::State_HasFocus;        style()->drawControl(QStyle::CE_PushButtonBevel, &opt, &p, this);    }    QLabel::paintEvent(pe);}VersionDialog::VersionDialog(QWidget *parent)    : QDialog(parent#ifdef Q_WS_MAC            , Qt::Tool#endif            ){    QGridLayout *layout = new QGridLayout(this);    VersionLabel *label = new VersionLabel(this);    QLabel *lbl = new QLabel(this);    lbl->setText(tr("<h3>%1</h3>"                    "<br/><br/>Version %2"#if QT_EDITION == QT_EDITION_OPENSOURCE                    " Open Source Edition"#endif                    "<br/>Qt Designer is a graphical user interface designer "                    "for Qt applications.<br/><br/>"#if QT_EDITION == QT_EDITION_OPENSOURCE                    "This version of Qt Designer is part of the Qt Open Source Edition, for use "                    "in the development of Open Source applications. "                    "Qt is a comprehensive C++ framework for cross-platform application "                    "development.<br/><br/>"                    "You need a commercial Qt license for development of proprietary (closed "                    "source) applications. Please see <tt>http://www.trolltech.com/company/model"                    ".html</tt> for an overview of Qt licensing.<br/>"#else                    "This program is licensed to you under the terms of the "                    "Qt Commercial License Agreement. For details, see the file LICENSE "                    "that came with this software distribution.<br/>"#endif                    "<br/>Copyright 2000-2006 Trolltech ASA. All rights reserved."                    "<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND,"                    " INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A"                    " PARTICULAR PURPOSE.<br/> ").arg(tr("Qt Designer"))                    .arg(QLatin1String(QT_VERSION_STR)));    lbl->setWordWrap(true);    QPushButton *cmd = new QPushButton("OK", this);    cmd->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);    cmd->setDefault(true);    connect(cmd, SIGNAL(clicked()), this, SLOT(reject()));    connect(label, SIGNAL(triggered()), this, SLOT(accept()));    layout->addWidget(label, 0, 0, 1, 1);    layout->addWidget(lbl, 0, 1, 4, 4);    layout->addWidget(cmd, 4, 2, 1, 1);}VersionDialog::~VersionDialog(){}#include "versiondialog.moc"

⌨️ 快捷键说明

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