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

📄 canvas-chart-example.html

📁 QT 下载资料仅供参考
💻 HTML
📖 第 1 页 / 共 3 页
字号:
#include "images/options_piechart.xpm"#include "images/options_verticalbarchart.xpm"const <a href="qstring.html">QString</a> WINDOWS_REGISTRY = "/QtExamples";const <a href="qstring.html">QString</a> APP_KEY = "/Chart/";<a name="f555"></a>ChartForm::ChartForm( const <a href="qstring.html">QString</a>&amp; filename )    : <a href="qmainwindow.html">QMainWindow</a>( 0, 0, WDestructiveClose ){    <a href="qwidget.html#setIcon">setIcon</a>( QPixmap( options_piechart ) );    <a href="qaction.html">QAction</a> *fileNewAction;    <a href="qaction.html">QAction</a> *fileOpenAction;    <a href="qaction.html">QAction</a> *fileSaveAction;    <a href="qaction.html">QAction</a> *fileSaveAsAction;    <a href="qaction.html">QAction</a> *fileSaveAsPixmapAction;    <a href="qaction.html">QAction</a> *filePrintAction;    <a href="qaction.html">QAction</a> *fileQuitAction;    <a href="qaction.html">QAction</a> *optionsSetDataAction;    <a href="qaction.html">QAction</a> *optionsSetFontAction;    <a href="qaction.html">QAction</a> *optionsSetOptionsAction;    fileNewAction = new <a href="qaction.html">QAction</a>(            "New Chart", QPixmap( file_new ),            "&amp;New", CTRL+Key_N, this, "new" );<a name="x2586"></a>    <a href="qobject.html#connect">connect</a>( fileNewAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ), this, SLOT( fileNew() ) );    fileOpenAction = new <a href="qaction.html">QAction</a>(            "Open Chart", QPixmap( file_open ),            "&amp;Open...", CTRL+Key_O, this, "open" );    <a href="qobject.html#connect">connect</a>( fileOpenAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ), this, SLOT( fileOpen() ) );    fileSaveAction = new <a href="qaction.html">QAction</a>(            "Save Chart", QPixmap( file_save ),            "&amp;Save", CTRL+Key_S, this, "save" );    <a href="qobject.html#connect">connect</a>( fileSaveAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ), this, SLOT( fileSave() ) );    fileSaveAsAction = new <a href="qaction.html">QAction</a>(            "Save Chart As", QPixmap( file_save ),            "Save &amp;As...", 0, this, "save as" );    <a href="qobject.html#connect">connect</a>( fileSaveAsAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( fileSaveAs() ) );    fileSaveAsPixmapAction = new <a href="qaction.html">QAction</a>(            "Save Chart As Bitmap", QPixmap( file_save ),            "Save As &amp;Bitmap...", CTRL+Key_B, this, "save as bitmap" );    <a href="qobject.html#connect">connect</a>( fileSaveAsPixmapAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( fileSaveAsPixmap() ) );    filePrintAction = new <a href="qaction.html">QAction</a>(            "Print Chart", QPixmap( file_print ),            "&amp;Print Chart...", CTRL+Key_P, this, "print chart" );    <a href="qobject.html#connect">connect</a>( filePrintAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( filePrint() ) );    optionsSetDataAction = new <a href="qaction.html">QAction</a>(            "Set Data", QPixmap( options_setdata ),            "Set &amp;Data...", CTRL+Key_D, this, "set data" );    <a href="qobject.html#connect">connect</a>( optionsSetDataAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( optionsSetData() ) );    <a href="qactiongroup.html">QActionGroup</a> *chartGroup = new <a href="qactiongroup.html">QActionGroup</a>( this ); // Connected later<a name="x2591"></a>    chartGroup-&gt;<a href="qactiongroup.html#setExclusive">setExclusive</a>( true );    optionsPieChartAction = new <a href="qaction.html">QAction</a>(            "Pie Chart", QPixmap( options_piechart ),            "&amp;Pie Chart", CTRL+Key_I, chartGroup, "pie chart" );<a name="x2589"></a>    optionsPieChartAction-&gt;<a href="qaction.html#setToggleAction">setToggleAction</a>( true );    optionsHorizontalBarChartAction = new <a href="qaction.html">QAction</a>(            "Horizontal Bar Chart", QPixmap( options_horizontalbarchart ),            "&amp;Horizontal Bar Chart", CTRL+Key_H, chartGroup,            "horizontal bar chart" );    optionsHorizontalBarChartAction-&gt;<a href="qaction.html#setToggleAction">setToggleAction</a>( true );    optionsVerticalBarChartAction = new <a href="qaction.html">QAction</a>(            "Vertical Bar Chart", QPixmap( options_verticalbarchart ),            "&amp;Vertical Bar Chart", CTRL+Key_V, chartGroup, "Vertical bar chart" );    optionsVerticalBarChartAction-&gt;<a href="qaction.html#setToggleAction">setToggleAction</a>( true );    optionsSetFontAction = new <a href="qaction.html">QAction</a>(            "Set Font", QPixmap( options_setfont ),            "Set &amp;Font...", CTRL+Key_F, this, "set font" );    <a href="qobject.html#connect">connect</a>( optionsSetFontAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( optionsSetFont() ) );    optionsSetOptionsAction = new <a href="qaction.html">QAction</a>(            "Set Options", QPixmap( options_setoptions ),            "Set &amp;Options...", 0, this, "set options" );    <a href="qobject.html#connect">connect</a>( optionsSetOptionsAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ),             this, SLOT( optionsSetOptions() ) );    fileQuitAction = new <a href="qaction.html">QAction</a>( "Quit", "&amp;Quit", CTRL+Key_Q, this, "quit" );    <a href="qobject.html#connect">connect</a>( fileQuitAction, SIGNAL( <a href="qaction.html#activated">activated</a>() ), this, SLOT( fileQuit() ) );    <a href="qtoolbar.html">QToolBar</a>* fileTools = new <a href="qtoolbar.html">QToolBar</a>( this, "file operations" );<a name="x2614"></a>    fileTools-&gt;<a href="qtoolbar.html#setLabel">setLabel</a>( "File Operations" );<a name="x2587"></a>    fileNewAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileTools );    fileOpenAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileTools );    fileSaveAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileTools );<a name="x2613"></a>    fileTools-&gt;<a href="qtoolbar.html#addSeparator">addSeparator</a>();    filePrintAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileTools );    <a href="qtoolbar.html">QToolBar</a> *optionsTools = new <a href="qtoolbar.html">QToolBar</a>( this, "options operations" );    optionsTools-&gt;<a href="qtoolbar.html#setLabel">setLabel</a>( "Options Operations" );    optionsSetDataAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    optionsTools-&gt;<a href="qtoolbar.html#addSeparator">addSeparator</a>();    optionsPieChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    optionsHorizontalBarChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    optionsVerticalBarChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    optionsTools-&gt;<a href="qtoolbar.html#addSeparator">addSeparator</a>();    optionsSetFontAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    optionsTools-&gt;<a href="qtoolbar.html#addSeparator">addSeparator</a>();    optionsSetOptionsAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsTools );    fileMenu = new <a href="qpopupmenu.html">QPopupMenu</a>( this );    <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertItem( "&amp;File", fileMenu );    fileNewAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileOpenAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileSaveAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileSaveAsAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    fileSaveAsPixmapAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    filePrintAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    fileQuitAction-&gt;<a href="qaction.html#addTo">addTo</a>( fileMenu );    fileMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    optionsMenu = new <a href="qpopupmenu.html">QPopupMenu</a>( this );    <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertItem( "&amp;Options", optionsMenu );    optionsSetDataAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    optionsMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    optionsPieChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    optionsHorizontalBarChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    optionsVerticalBarChartAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    optionsMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    optionsSetFontAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    optionsMenu-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();    optionsSetOptionsAction-&gt;<a href="qaction.html#addTo">addTo</a>( optionsMenu );    <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertSeparator();    <a href="qpopupmenu.html">QPopupMenu</a> *helpMenu = new <a href="qpopupmenu.html">QPopupMenu</a>( this );    <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertItem( "&amp;Help", helpMenu );    helpMenu-&gt;<a href="qmenudata.html#insertItem">insertItem</a>( "&amp;Help", this, SLOT(helpHelp()), Key_F1 );    helpMenu-&gt;<a href="qmenudata.html#insertItem">insertItem</a>( "&amp;About", this, SLOT(helpAbout()) );    helpMenu-&gt;<a href="qmenudata.html#insertItem">insertItem</a>( "About &amp;Qt", this, SLOT(helpAboutQt()) );    m_printer = 0;    m_elements.resize( MAX_ELEMENTS );    <a href="qsettings.html">QSettings</a> settings;<a name="x2607"></a>    settings.<a href="qsettings.html#insertSearchPath">insertSearchPath</a>( QSettings::Windows, WINDOWS_REGISTRY );<a name="x2609"></a>    int windowWidth = settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "WindowWidth", 460 );    int windowHeight = settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "WindowHeight", 530 );    int windowX = settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "WindowX", 0 );    int windowY = settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "WindowY", 0 );    setChartType( ChartType(            settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "ChartType", int(PIE) ) ) );    m_addValues = AddValuesType(                    settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "AddValues", int(NO) ));    m_decimalPlaces = settings.<a href="qsettings.html#readNumEntry">readNumEntry</a>( APP_KEY + "Decimals", 2 );    m_font = QFont( "Helvetica", 18, QFont::Bold );    m_font.fromString(<a name="x2608"></a>            settings.<a href="qsettings.html#readEntry">readEntry</a>( APP_KEY + "Font", m_font.toString() ) );    for ( int i = 0; i &lt; MAX_RECENTFILES; ++i ) {        <a href="qstring.html">QString</a> filename = settings.<a href="qsettings.html#readEntry">readEntry</a>( APP_KEY + "File" +<a name="x2612"></a>                                               QString::<a href="qstring.html#number">number</a>( i + 1 ) );<a name="x2611"></a>        if ( !filename.<a href="qstring.html#isEmpty">isEmpty</a>() )            m_recentFiles.push_back( filename );    }    if ( m_recentFiles.count() )        updateRecentFilesMenu();    // Connect *after* we've set the chart type on so we don't call    // drawElements() prematurely.<a name="x2590"></a>    <a href="qobject.html#connect">connect</a>( chartGroup, SIGNAL( <a href="qactiongroup.html#selected">selected</a>(QAction*) ),             this, SLOT( updateChartType(QAction*) ) );    <a href="qwidget.html#resize">resize</a>( windowWidth, windowHeight );    <a href="qwidget.html#move">move</a>( windowX, windowY );    m_canvas = new <a href="qcanvas.html">QCanvas</a>( this );<a name="x2593"></a>    m_canvas-&gt;<a href="qcanvas.html#resize">resize</a>( <a href="qwidget.html#width">width</a>(), height() );    m_canvasView = new CanvasView( m_canvas, &amp;m_elements, this );    <a href="qmainwindow.html#setCentralWidget">setCentralWidget</a>( m_canvasView );    m_canvasView-&gt;<a href="qwidget.html#show">show</a>();    if ( !filename.<a href="qstring.html#isEmpty">isEmpty</a>() )        load( filename );    else {        init();        m_elements[0].set( 20, red,    14, "Red" );        m_elements[1].set( 70, cyan,    2, "Cyan",   darkGreen );        m_elements[2].set( 35, blue,   11, "Blue" );        m_elements[3].set( 55, yellow,  1, "Yellow", darkBlue );        m_elements[4].set( 80, magenta, 1, "Magenta" );        drawElements();    }    <a href="qmainwindow.html#statusBar">statusBar</a>()-&gt;message( "Ready", 2000 );}ChartForm::~ChartForm(){    delete m_printer;}void <a name="f556"></a>ChartForm::init(){    <a href="qwidget.html#setCaption">setCaption</a>( "Chart" );    m_filename = QString::null;    m_changed = false;    m_elements[0]  = Element( Element::INVALID, red );    m_elements[1]  = Element( Element::INVALID, cyan );    m_elements[2]  = Element( Element::INVALID, blue );    m_elements[3]  = Element( Element::INVALID, yellow );    m_elements[4]  = Element( Element::INVALID, green );    m_elements[5]  = Element( Element::INVALID, magenta );    m_elements[6]  = Element( Element::INVALID, darkYellow );    m_elements[7]  = Element( Element::INVALID, darkRed );    m_elements[8]  = Element( Element::INVALID, darkCyan );    m_elements[9]  = Element( Element::INVALID, darkGreen );    m_elements[10] = Element( Element::INVALID, darkMagenta );    m_elements[11] = Element( Element::INVALID, darkBlue );    for ( int i = 12; i &lt; MAX_ELEMENTS; ++i ) {        double x = (double(i) / MAX_ELEMENTS) * 360;        int y = (int(x * 256) % 105) + 151;        int z = ((i * 17) % 105) + 151;        m_elements[i] = Element( Element::INVALID, QColor( int(x), y, z, QColor::Hsv ) );    }}void <a name="f557"></a>ChartForm::fileNew(){    if ( okToClear() ) {        init();        drawElements();    }}void <a name="f558"></a>ChartForm::fileOpen(){    if ( !okToClear() )        return;    <a href="qstring.html">QString</a> filename = QFileDialog::<a href="qfiledialog.html#getOpenFileName">getOpenFileName</a>(                            QString::null, "Charts (*.cht)", this,                            "file open", "Chart -- File Open" );    if ( !filename.<a href="qstring.html#isEmpty">isEmpty</a>() )        load( filename );    else        <a href="qmainwindow.html#statusBar">statusBar</a>()-&gt;message( "File Open abandoned", 2000 );

⌨️ 快捷键说明

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