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

📄 qwt_scale.cpp

📁 软件无线电的平台
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Qwt Widget Library * Copyright (C) 1997   Josef Wilgen * Copyright (C) 2002   Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/// vim: expandtab#include <qpainter.h>#include "qwt_painter.h"#include "qwt_scale.h"#include "qwt_math.h"#include "qwt_paint_buffer.h"#include "qwt_text.h"#ifdef QWT_DEBUG#include <stdio.h>#endif/*!  \brief Constructor  \param pos Position. Must be one of             <code>QwtScale::Left, QwtScale::Right, QwtScale::Bottom,             </code>or \c QwtScale::Top  \param parent  \param name passed to QWidget's CTOR*/QwtScale::QwtScale(QwtScale::Position pos, QWidget *parent, const char *name):    QWidget(parent,name, WRepaintNoErase|WResizeNoErase){    QwtScaleDraw::Orientation sdo;    d_borderDist[0] = 0;    d_borderDist[1] = 0;    d_baseDist = 4;    d_titleOffset = 0;    d_titleDist = 2;    switch(pos)    {        case QwtScale::Left:            sdo = QwtScaleDraw::Left;            break;        case QwtScale::Right:            sdo = QwtScaleDraw::Right;            break;        case QwtScale::Bottom:            sdo = QwtScaleDraw::Bottom;            break;        case QwtScale::Top:            sdo = QwtScaleDraw::Top;            break;        default:            sdo = QwtScaleDraw::Left;    }    d_scaleDraw = new QwtScaleDraw;    d_scaleDraw->setGeometry(0,0,10,sdo);    d_title = new QwtPlainText(        QString::null, font(), AlignHCenter | WordBreak | ExpandTabs);}//! DestructorQwtScale::~QwtScale(){    delete d_scaleDraw;    delete d_title;}/*!  \brief Give title new text contents  \param text New text  \sa QwtScale::title*/void QwtScale::setTitle(const QString &text){    if (text == title())        return;    QwtText *title = QwtText::makeText(text, d_title->alignment(),        d_title->font(), d_title->color());    delete d_title;    d_title = title;    layoutScale();}/*!  \brief Assign a position  \param pos new position  \sa QwtScale::position*/void QwtScale::setPosition(Position pos){    QwtScaleDraw::Orientation sdo;    switch(pos)    {        case QwtScale::Left:            sdo = QwtScaleDraw::Left;            break;        case QwtScale::Right:            sdo = QwtScaleDraw::Right;            break;        case QwtScale::Bottom:            sdo = QwtScaleDraw::Bottom;            break;        case QwtScale::Top:            sdo = QwtScaleDraw::Top;            break;        default:            sdo = QwtScaleDraw::Left;    }        if (d_scaleDraw)        d_scaleDraw->setGeometry(0,0,10,sdo);    layoutScale();}        /*!     \return position     \sa QwtScale::setPosition*/QwtScale::Position QwtScale::position() const {    if (!scaleDraw())        return Left;        QwtScaleDraw::Orientation ori = scaleDraw()->orientation();    switch(ori)    {        case QwtScaleDraw::Left:            return QwtScale::Left;        case QwtScaleDraw::Right:            return QwtScale::Right;        case QwtScaleDraw::Bottom:            return QwtScale::Bottom;        case QwtScaleDraw::Top:            return QwtScale::Top;        default:            return QwtScale::Left;    }}/*!  Specify distances of the scale's endpoints from the  widget's borders. The actual borders will never be less  than minimum border distance.  \param dist1 Left or top Distance  \param dist2 Right or bottom distance  \sa QwtScale::borderDist*/void QwtScale::setBorderDist(int dist1, int dist2){    if ( dist1 != d_borderDist[0] || dist2 != d_borderDist[1] )    {        d_borderDist[0] = dist1;        d_borderDist[1] = dist2;        layoutScale();    }}/*!  \brief Specify the border distance of the scale's base line.  \param bd border distance of the baseline  \sa QwtScale::baseLineDist*/void QwtScale::setBaselineDist(int bd){    bd = qwtMax( 0, bd );    if ( bd != d_baseDist )    {        d_baseDist = bd;        layoutScale();    }}/*!  \brief Specify the distance between scale and title  \param td Title distance  \sa QwtScale::titleDist*/void QwtScale::setTitleDist(int td){    td = qwtMax( 0, td );    if ( td != d_titleDist )    {        d_titleDist = td;        layoutScale();    }}/*!  \brief Change the title font  \param f new font  \sa QwtScale::title*/void QwtScale::setTitleFont(const QFont &f){    if (f == d_title->font())        return;    d_title->setFont(f);    layoutScale();}/*!  \brief Change the title color  \param c new title color  \sa QwtScale::titleColor*/void QwtScale::setTitleColor(const QColor &c){    d_title->setColor(c);    update();}/*!  \brief Change the title alignment  \param flags see Qt::AlignmentFlags. flags are interpreted in               direction of the label, AlignTop, AlignBottom can't be set               as the title will always be aligned to the scale.  \sa QwtScale::titleAlignment, Qt::AlignmentFlags*/void QwtScale::setTitleAlignment(int flags){    flags &= ~(AlignTop | AlignBottom);    d_title->setAlignment(flags);    layoutScale(); // SingleLine, ExpandTabs might affect layout}/*!  \brief Set the number format for the major scale labels  Format character and precision have the same meaning as for the  QString class.  \param f  format character  \param prec precision  \param fieldwidth minimum fieldwidth  \sa QwtScale::labelFormat, QString::sprintf in the Qt manual*/void QwtScale::setLabelFormat(char f, int prec, int fieldwidth){    d_scaleDraw->setLabelFormat(f, prec, fieldwidth);    layoutScale();}/*!  \brief Change the alignment for the labels.  See QwtScaleDraw::setLabelAlignment().  \sa QwtScaleDraw::setLabelAlignment(), QwtScale::setLabelRotation()*/void QwtScale::setLabelAlignment(int align){    d_scaleDraw->setLabelAlignment(align);    layoutScale();}/*!  \brief Change the rotation for the labels.  See QwtScaleDraw::setLabelRotation().  \sa QwtScaleDraw::setLabelRotation(), QwtScale::setLabelAlignment()*/void QwtScale::setLabelRotation(double rotation){    d_scaleDraw->setLabelRotation(rotation);    layoutScale();}/*!  \brief Set a scale draw  sd has to be created with new and will be deleted in  QwtScale::~QwtScale or the next call of QwtScale::setScaleDraw.*/void QwtScale::setScaleDraw(QwtScaleDraw *sd){    if ( sd == NULL || sd == d_scaleDraw )        return;    if ( d_scaleDraw )        *sd = *d_scaleDraw;    delete d_scaleDraw;    d_scaleDraw = sd;    layoutScale();}/*!  Format character and precision have the same meaning as for the  QString class.  \retval f format character  \retval prec precision  \retval fieldwidth minimum fieldwidth  \return the number format for the major scale labels  \sa QwtScale::setLabelFormat, QString::sprintf in the Qt manual*/void QwtScale::labelFormat(char &f, int &prec, int &fieldwidth) const{    d_scaleDraw->labelFormat(f, prec, fieldwidth);}/*!     scaleDraw of this scale    \sa QwtScaleDraw::setScaleDraw*/const QwtScaleDraw *QwtScale::scaleDraw() const {     return d_scaleDraw; }/*!     \return alignment    \sa QwtScale::setTitleAlignment, Qt::AlignmentFlags*/int QwtScale::titleAlignment() const {     return d_title->alignment();}/*!     \return title font    \sa QwtScale::setTitleFont*/const QFont QwtScale::titleFont() const {    return d_title->font();}/*!     \return title color    \sa QwtScale::setTitleColor*/const QColor QwtScale::titleColor() const {    return d_title->color();}/*!     \return title     \sa QwtScale::setTitle*/const QString QwtScale::title() const {    return d_title->text();}/*!     \return start border distance     \sa QwtScale::setBorderDist*/int QwtScale::startBorderDist() const {     return d_borderDist[0]; }  /*!     \return end border distance 

⌨️ 快捷键说明

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