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

📄 grapher.h

📁 qt-embedded-2.3.8.tar.gz源码
💻 H
字号:
/****************************************************************************** $Id: qt/extensions/nsplugin/examples/grapher/grapher.h   2.3.8   edited 2004-08-05 $**** Grapher example for netscape plugin.**** Created : 970601**** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.**** This file is part of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef GRAPHER_H#define GRAPHER_H// Include Qt Netscape Plugin classes.#include "qnp.h"// Include other Qt classes.#include <qpainter.h>#include <qtextstream.h>#include <qbuffer.h>#include <qpixmap.h>#include <qmenubar.h>#include <qpushbutton.h>#include <qlist.h>#include <qmessagebox.h>#include <qframe.h>#include <qlabel.h>#include <qlayout.h>// Include some C library functions.#include <math.h>#include <stdlib.h>#ifndef M_PI // Some math.h don't include this.#define M_PI 3.14159265358979323846264338327950288#endif// GraphModel is a simple abstract class that describes// a table of numeric and text data.//class GraphModel {public:    enum ColType { Numeric, Label };    union Datum {	double dbl;	QString* str;    };    virtual QList<Datum>& graphData()=0;    virtual ColType colType(int col) const=0;    virtual int nCols() const=0;};//// Graph is a widget subclass that displays a GraphModel.// Since the widget is a QNPWidget, it can be used as a plugin window,// returned by Grapher::newWindow() below.//#ifdef WIN32#include <windows.h>#endifclass Graph : public QNPWidget {    Q_OBJECTpublic:    // Constructs a Graph to display a GraphModel    //    Graph(GraphModel&);    ~Graph();    // Two styles are available - Pie and Bar graph    //    enum Style { Pie, Bar };    static const char* styleName[];    void setStyle(Style);    void setStyle(const char*);    // Timer event processing rotates the pie graph    //    void timerEvent(QTimerEvent*);    // These functions are provided by QNPWidget - we override    // them to hide and show the plugin menubar.    //    void enterInstance();    void leaveInstance();    // Paint the graph...    //    void paintEvent(QPaintEvent*);    //    // ... as either a "Loading" message, a Bar graph, a Pie graph,    // or an error message.    //    void paintWait(QPaintEvent*);    void paintBar(QPaintEvent*);    void paintPie(QPaintEvent*);    void paintError(const char*);    //bool winEvent(MSG *msg);signals:    // Signals emitted when the Help menus are selected.    void aboutPlugin();    void aboutData();private:    GraphModel& model;    QMenuBar *menubar;    Style style;    QPopupMenu* stylemenu;    int pieRotationTimer;    int pieRotation;    QPixmap pm;    //QFrame *f;private slots:    void setStyleFromMenu(int id);};//// Grapher is a subclass of QNPInstance, and so it can be returned// by GrapherPlugin::newInstance().  A QNPInstance represents the// plugin, distinctly from the plugin window.//// Grapher is also a GraphModel, because it loads graph data from// the net.  When Grapher creates a window in newWindow(), it creates// a Graph widget to display the GraphModel that is the Grapher itself.//class Grapher : public QNPInstance, GraphModel {    Q_OBJECTpublic:    // Create a Grapher - all Grapher plugins are created    // by one GrapherPlugin object.    //    Grapher();    ~Grapher();    // We override this QNPInstance function to create our    // own subclass of QNPWidget, a Graph widget.    //    QNPWidget* newWindow();    // We override this QNPInstance function to process the    // incoming graph data.    //    int write(QNPStream* /*str*/, int /*offset*/, int len, void* buffer);private:    // Grapher is a GraphModel, so it implements the pure virtual    // functions of that class.    //    QList<Datum>& graphData();    ColType colType(int col) const;    int nCols() const;    void consumeLine();    QList<Datum> data;    QBuffer line;    bool firstline;    int ncols;    ColType *coltype;private slots:    // Slots that are connected to the Graph menu items.    //    void aboutPlugin();    void aboutData();};#endif

⌨️ 快捷键说明

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