このページでは

QPieSlice Class

QPieSlice クラスは、パイ・シリーズ内の 1 つのスライスを表します。詳細...

ヘッダー: #include <QPieSlice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
QML内: PieSlice
継承元: QObject

パブリック型

enum class LabelPosition { Outside, InsideHorizontal, InsideTangential, InsideNormal }

プロパティ

パブリック関数

QPieSlice(QObject *parent = nullptr)
QPieSlice(const QString &label, qreal value, QObject *parent = nullptr)
virtual ~QPieSlice() override
qreal angleSpan() const
bool append(QPieSlice *slice)
bool append(const QList<QPieSlice *> &slices)
QPieSlice *append(const QString &label, qreal value)
QPieSlice *at(qsizetype index) const
QColor borderColor() const
qreal borderWidth() const
QColor color() const
qreal explodeDistanceFactor() const
QPieSlice *find(const QString &label) const
bool insert(qsizetype index, QPieSlice *slice)
bool isEmpty() const
bool isExploded() const
bool isLabelVisible() const
QString label() const
qreal labelArmLengthFactor() const
QColor labelColor() const
QFont labelFont() const
QPieSlice::LabelPosition labelPosition()
qreal percentage() const
bool remove(QPieSlice *slice)
bool remove(qsizetype index)
void removeMultiple(qsizetype index, int count)
bool replace(QPieSlice *oldSlice, QPieSlice *newSlice)
bool replace(qsizetype index, QPieSlice *slice)
bool replaceAll(const QList<QPieSlice *> &slices)
QPieSeries *series() const
void setBorderColor(QColor color)
void setBorderWidth(qreal borderWidth)
void setColor(QColor color)
void setExplodeDistanceFactor(qreal factor)
void setExploded(bool exploded)
void setLabel(const QString &label)
void setLabelArmLengthFactor(qreal factor)
void setLabelColor(QColor color)
void setLabelFont(const QFont &font)
void setLabelPosition(QPieSlice::LabelPosition position)
void setLabelVisible(bool visible = true)
void setSubSlicesRatio(qreal subSlicesRatio)
void setValue(qreal value)
QQmlListProperty<QPieSlice> sliceChildren()
qreal startAngle() const
QList<QPieSlice *> subSlices() const
qsizetype subSlicesCount() const
qreal subSlicesRatio() const
qreal subSlicesSum() const
bool take(QPieSlice *slice)
qreal value() const

パブリックスロット

void clear()

シグナル

void angleSpanChanged()
void borderColorChanged()
void borderWidthChanged()
void colorChanged()
void explodeDistanceFactorChanged()
void explodedChanged()
void labelArmLengthFactorChanged()
void labelChanged()
void labelColorChanged()
void labelFontChanged()
void labelPositionChanged()
void labelVisibleChanged()
void percentageChanged()
void startAngleChanged()
void subSlicesAdded(const QList<QPieSlice *> &slices)
void subSlicesCountChanged(qsizetype count)
void subSlicesRatioChanged(qreal newSubSlicesRatio)
void subSlicesRemoved(const QList<QPieSlice *> &slices)
void subSlicesSumChanged(qreal sum)
void valueChanged()

詳細な説明

円グラフのスライスには、値とラベルがあります。スライスが円グラフシリーズに追加されると、QPieSeries オブジェクトは、シリーズ内のすべてのスライスの合計に対するそのスライスの割合を計算し、グラフ内のスライスの実際のサイズを決定します。

デフォルトでは、ラベルは非表示になっています。表示されている場合、ラベルはスライスの外側に配置され、アームでスライスに接続されるか、スライスの弧の接線または法線と平行に、スライスの内側に水平方向に中央揃えで配置されます。

デフォルトでは、スライスの外観はテーマによって設定されますが、スライスのプロパティを指定することでテーマを上書きすることができます。ただし、スライスをカスタマイズした後にテーマを変更すると、すべてのカスタマイズ設定は失われます。

円グラフでのユーザー操作を可能にするため、ユーザーが円グラフのスライスをクリックしたり、マウスをスライス上にホバーさせたりすると、いくつかの基本的なシグナルが発信されます。

円グラフのスライスには、サブスライスを含めることができます。

QPieSeriesも参照してください 。

メンバ型のドキュメント

enum class QPieSlice::LabelPosition

この列挙型は、スライスラベルの位置を表します。

定数値説明
QPieSlice::LabelPosition::Outside0ラベルは、アームを介して接続されたスライスの外側に配置されます。これがデフォルト値です。
QPieSlice::LabelPosition::InsideHorizontal1ラベルはスライス内で中央に配置され、水平方向に配置されます。
QPieSlice::LabelPosition::InsideTangential2ラベルはスライス内で中央に配置され、スライスの弧の接線と平行になるように回転されます。
QPieSlice::LabelPosition::InsideNormal3ラベルはスライス内で中央に配置され、スライスの弧の法線と平行になるように回転されます。

プロパティのドキュメント

[read-only] angleSpan : qreal

このプロパティには、スライスの角度(度)が格納されます。円全体は360度で、0度は12時の位置にあたります。スライスがシリーズに追加されると自動的に更新されます。

アクセス関数:

qreal angleSpan() const

通知シグナル:

void angleSpanChanged()

borderColor : QColor

このプロパティは、スライスの境界線を描画するために使用される色を保持します。これは、スライスを変更するための便利なプロパティです。

アクセス関数:

QColor borderColor() const
void setBorderColor(QColor color)

通知シグナル:

void borderColorChanged()

関連項目: borderWidth 。

borderWidth : qreal

このプロパティは、スライスの境界線の幅を保持します。これは、スライスの境界線の幅を変更するための便利なプロパティです。

アクセス関数:

qreal borderWidth() const
void setBorderWidth(qreal borderWidth)

通知シグナル:

void borderWidthChanged()

関連項目: borderColor 。

color : QColor

このプロパティは、スライスの塗りつぶし色を保持します。これは、スライスの塗りつぶし色を変更するための便利なプロパティです。

アクセス関数:

QColor color() const
void setColor(QColor color)

通知シグナル:

void colorChanged()

explodeDistanceFactor : qreal

スライスが円からどの程度離れた位置に展開されるかを決定します。

  • 1.0 は、その距離が半径と同じであることを意味します。
  • 0.5の場合は、半径の半分になります。

デフォルトでは、距離は 0.15 です。

アクセス関数:

qreal explodeDistanceFactor() const
void setExplodeDistanceFactor(qreal factor)

通知シグナル:

void explodeDistanceFactorChanged()

explodedも参照してください 。

exploded : bool

このプロパティは、スライスがパイから切り離されているかどうかを表します。

アクセス関数:

bool isExploded() const
void setExploded(bool exploded)

通知シグナル:

void explodedChanged()

関連項目: explodeDistanceFactor 。

label : QString

このプロパティには、スライスのラベルが格納されます。

注: 文字列は HTML形式で記述可能です。

アクセス関数:

QString label() const
void setLabel(const QString &label)

通知シグナル:

void labelChanged()

関連項目: labelVisible 、labelFont 、およびlabelArmLengthFactor 。

labelArmLengthFactor : qreal

このプロパティは、ラベルアームの長さを指定します。この値は、円グラフの半径に対する相対値です。例えば:

  • 1.0 は、長さが半径と同じであることを意味します。
  • 0.5 は、長さが半径の半分であることを意味します。

デフォルトでは、アームの長さは 0.15 です。

アクセス関数:

qreal labelArmLengthFactor() const
void setLabelArmLengthFactor(qreal factor)

通知信号:

void labelArmLengthFactorChanged()

関連項目: label 、labelVisible 、およびlabelFont 。

labelColor : QColor

このプロパティは、スライスのラベルを描画するために使用される色を指定します。

アクセス関数:

QColor labelColor() const
void setLabelColor(QColor color)

通知シグナル:

void labelColorChanged()

labelFont : QFont

このプロパティには、ラベルのテキストを描画するために使用されるフォントが格納されます。

アクセス関数:

QFont labelFont() const
void setLabelFont(const QFont &font)

通知シグナル:

void labelFontChanged()

関連項目: label 、labelVisible 、およびlabelArmLengthFactor 。

labelPosition : LabelPosition

このプロパティは、スライスラベルの位置を指定します。

アクセス関数:

QPieSlice::LabelPosition labelPosition()
void setLabelPosition(QPieSlice::LabelPosition position)

通知信号:

void labelPositionChanged()

関連項目: label およびlabelVisible 。

labelVisible : bool

このプロパティは、スライスラベルの表示状態を指定します。デフォルトでは、ラベルは非表示になっています。

アクセス関数:

bool isLabelVisible() const
void setLabelVisible(bool visible = true)

通知シグナル:

void labelVisibleChanged()

関連項目: label 、labelFont 、およびlabelArmLengthFactor 。

[read-only] percentage : qreal

このプロパティは、シリーズ内のすべてのスライスの合計に対する、そのスライスの割合を表します。実際の値は 0.0 から 1.0 の範囲です。スライスがシリーズに追加されると、自動的に更新されます。

アクセス関数:

qreal percentage() const

通知シグナル:

void percentageChanged()

関連項目: value およびQPieSeries::sum 。

[read-only] sliceChildren : QQmlListProperty<QPieSlice>

このスライスに含まれるサブスライスのリストです。これは、QMLのスライス要素内で、childrenというプロパティ名を明示的に使用することなくサブスライスを指定できるようにするデフォルトのプロパティです。

アクセス関数:

QQmlListProperty<QPieSlice> sliceChildren()

[read-only] startAngle : qreal

このプロパティは、このスライスが属するシリーズにおける開始角度を保持します。円グラフ全体は360度で、0度は12時の位置に相当します。スライスがシリーズに追加されると自動的に更新されます。

アクセス関数:

qreal startAngle() const

通知シグナル:

void startAngleChanged()

[read-only] subSlicesCount : qsizetype

このプロパティは、スライスに含まれるサブスライスの数を保持します。

アクセス関数:

qsizetype subSlicesCount() const

通知信号:

void subSlicesCountChanged(qsizetype count)

subSlicesRatio : qreal

親スライスに対するサブスライスの相対的なサイズ。値の範囲は 0.0 から 1.0 までで、1.0 は、サブスライスが、サブスライスがない場合の親スライスと同じだけのスペースを占めることを意味します。デフォルト値は 0.6 です。

アクセス関数:

qreal subSlicesRatio() const
void setSubSlicesRatio(qreal subSlicesRatio)

通知シグナル:

void subSlicesRatioChanged(qreal newSubSlicesRatio)

[read-only] subSlicesSum : qreal

このプロパティには、すべてのサブスライスの合計値が格納されます。

このスライスは、自身が保持するすべてのサブスライスの合計を追跡します。

アクセス関数:

qreal subSlicesSum() const

通知シグナル:

void subSlicesSumChanged(qreal sum)

value : qreal

このプロパティには、スライスの値が格納されます。

注: 負の値は 正の値に変換されます。

アクセス関数:

qreal value() const
void setValue(qreal value)

通知シグナル:

void valueChanged()

関連項目: percentage() およびQPieSeries::sum()。

メンバ関数のドキュメント

[explicit] QPieSlice::QPieSlice(QObject *parent = nullptr)

親要素parent を含む空のスライスを作成します。

QPieSeries::append() およびQPieSeries::insert()も参照してください 。

QPieSlice::QPieSlice(const QString &label, qreal value, QObject *parent = nullptr)

指定されたvalue 、label 、およびparent を用いて、空のスライスを構築します。

QPieSeries::append() およびQPieSeries::insert()も参照してください 。

[override virtual noexcept] QPieSlice::~QPieSlice()

スライスを削除します。スライスがシリーズに追加されている場合は、削除しないでください。

[invokable] bool QPieSlice::append(QPieSlice *slice)

slice で指定されたサブスライスを、スライスの末尾に追加します。サブスライスの所有権はスライスに引き継がれます。

追加に成功した場合、true を返します。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::append(const QList<QPieSlice *> &slices)

slices で指定されたサブスライスの配列を、スライスに追加します。サブスライスの所有権はスライスに渡されます。

追加に成功した場合、true を返します。

注:この関数は 、メタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] QPieSlice *QPieSlice::append(const QString &label, qreal value)

指定されたvalue およびlabel を持つ単一のサブスライスを、スライスに追加します。サブスライスの所有権はスライスに引き継がれます。value がNaN 、Inf 、または-Inf の場合、nullを返し、シリーズには何も追加しません。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] QPieSlice *QPieSlice::at(qsizetype index) const

位置index にあるPieSlice を返します。PieSlice が見つからない場合はnullを返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[slot] void QPieSlice::clear()

スライスからすべてのサブスライスを削除します。

[invokable] QPieSlice *QPieSlice::find(const QString &label) const

ラベル「label 」を含むPieSlice を検索します。見つかった場合はPieSlice を返し、見つからない場合はnullを返します。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::insert(qsizetype index, QPieSlice *slice)

slice で指定されたサブスライスを、index で指定された位置にあるサブスライスの直前のスライスに挿入します。サブスライスの所有権は、そのスライスに引き継がれます。

挿入に成功した場合、true を返します。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

bool QPieSlice::isEmpty() const

サブスライス一覧が空の場合、true を返します。

[invokable] bool QPieSlice::remove(QPieSlice *slice)

slice で指定された 1 つのサブスライスをスライスから削除し、完全に破棄します。

この呼び出し後は、当該ポインタを参照することはできません。

削除に成功した場合は、true を返します。

注:この関数は 、メタオブジェクトシステムを介して、また QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::remove(qsizetype index)

index の場所にあるPieSlice を削除します。PieSlice は完全に削除されます。削除に成功した場合は、true を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] void QPieSlice::removeMultiple(qsizetype index, int count)

index から始まるスライスから、count の範囲までの複数の PieSlices を削除します。削除された PieSlices は完全に削除されます。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::replace(QPieSlice *oldSlice, QPieSlice *newSlice)

スライス内に「PieSlice oldSlice 」が見つかった場合、これを「newSlice 」に置き換えます。「oldSlice 」は完全に削除されます。置き換えに成功した場合は「true 」を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::replace(qsizetype index, QPieSlice *slice)

位置index にあるPieSlice を、slice で指定されたものに置き換えます。元のPieSlice は完全に削除されます。PieSlicesのいずれかの置き換えに失敗した場合は、false を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] bool QPieSlice::replaceAll(const QList<QPieSlice *> &slices)

スライス内のPieSlicesのリスト全体を、slices で指定されたリストに置き換えます。元のPieSlicesはすべて完全に削除されます。すべてのPieSlicesの置き換えに成功した場合は、true を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QPieSeries *QPieSlice::series() const

このスライスが属する系列を返します。

QPieSeries::append()も参照してください 。

QList<QPieSlice *> QPieSlice::subSlices() const

このスライスに含まれるサブスライスのリストを返します。

[signal] void QPieSlice::subSlicesAdded(const QList<QPieSlice *> &slices)

slices で指定されたサブスライスがスライスに追加されたときに、このシグナルが発信されます。

append()も参照してください 。

qsizetype QPieSlice::subSlicesCount() const

このスライスに含まれるサブスライスの数を返します。

注: プロパティ subSlicesCountのゲッター 関数です。

[signal] void QPieSlice::subSlicesRemoved(const QList<QPieSlice *> &slices)

slices で指定されたサブスライスがスライスから削除されたときに、このシグナルが発信されます。

remove()も参照してください 。

qreal QPieSlice::subSlicesSum() const

このスライスに含まれるすべてのサブスライスの値の合計を返します。

注: プロパティ `subSlicesSum`のゲッター 関数です。

関連項目: QPieSlice::value()、QPieSlice::setValue()、QPieSlice::percentage()。

[invokable] bool QPieSlice::take(QPieSlice *slice)

シリーズから、slice で指定された単一のサブスライスを取り出します。スライスオブジェクトは削除されません。

注:スライスは 引き続きそのスライスの親オブジェクトのままとなります。完全な所有権を取得するには、親オブジェクトを設定する必要があります。

take 操作が成功した場合、true を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.