Qt GUIプログラミング:QTextListFormat::style()でリストフォーマットのスタイルを自在に操る


QTextListFormat::style()関数は、Qt GUIにおけるリストフォーマットのスタイルを取得します。リストフォーマットは、リスト内のアイテムの外観を定義します。スタイルには、インデント、箇条書き記号の種類、番号付け方式などが含まれます。

構文

QTextListFormat::Style QTextListFormat::style() const

戻り値

リストフォーマットのスタイルを表すQTextListFormat::Style型の値を返します。

使用例

QTextListFormat listFormat;
listFormat.setStyle(QTextListFormat::ListDisc);

QTextCursor cursor(textEdit->document());
cursor.insertList(listFormat);

// 挿入されたリストのスタイルを取得
QTextListFormat::Style style = cursor.currentListFormat().style();

if (style == QTextListFormat::ListDisc) {
    // 挿入されたリストは円形の箇条書き記号を使用している
}

詳細

QTextListFormat::Style列挙型には、以下の定数が定義されています。

  • QTextListFormat::ListUpperRoman: 大文字のローマ数字による番号付け (最大4999項目まで)
  • QTextListFormat::ListLowerRoman: 小文字のローマ数字による番号付け (最大4999項目まで)
  • QTextListFormat::ListUpperAlpha: 大文字のアルファベットによる順序付け
  • QTextListFormat::ListLowerAlpha: 小文字のアルファベットによる順序付け
  • QTextListFormat::ListDecimal: 昇順の数字による番号付け
  • QTextListFormat::ListSquare: 塗りつぶされた四角形の箇条書き記号
  • QTextListFormat::ListCircle: 空の円形の箇条書き記号
  • QTextListFormat::ListDisc: 塗りつぶされた円形の箇条書き記号
  • リストフォーマットのスタイルは、QTextListFormat::setStyle()関数を使用して設定することもできます。


箇条書きリストの作成

#include <QApplication>
#include <QTextCursor>
#include <QTextEdit>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTextEdit textEdit;
    textEdit.show();

    QTextListFormat listFormat;
    listFormat.setStyle(QTextListFormat::ListDisc);

    QTextCursor cursor(textEdit->document());
    cursor.insertList(listFormat);

    cursor.insertText("リストアイテム1");
    cursor.insertBlock();

    cursor.insertText("リストアイテム2");
    cursor.insertBlock();

    return app.exec();
}

このコードを実行すると、円形の箇条書き記号を使用した箇条書きリストがテキストエディタに表示されます。

番号付きリストの作成

この例では、QTextListFormat::style()関数を使用して、数字による番号付けを使用した番号付きリストを作成します。

#include <QApplication>
#include <QTextCursor>
#include <QTextEdit>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTextEdit textEdit;
    textEdit.show();

    QTextListFormat listFormat;
    listFormat.setStyle(QTextListFormat::ListDecimal);

    QTextCursor cursor(textEdit->document());
    cursor.insertList(listFormat);

    cursor.insertText("リストアイテム1");
    cursor.insertBlock();

    cursor.insertText("リストアイテム2");
    cursor.insertBlock();

    return app.exec();
}

このコードを実行すると、数字による番号付けを使用した番号付きリストがテキストエディタに表示されます。

この例では、QTextListFormat::style()関数を使用して、異なるスタイルのリストを混在させます。

#include <QApplication>
#include <QTextCursor>
#include <QTextEdit>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTextEdit textEdit;
    textEdit.show();

    QTextListFormat discListFormat;
    discListFormat.setStyle(QTextListFormat::ListDisc);

    QTextListFormat decimalListFormat;
    decimalListFormat.setStyle(QTextListFormat::ListDecimal);

    QTextCursor cursor(textEdit->document());

    // 円形の箇条書き記号を使用したリストを挿入
    cursor.insertList(discListFormat);
    cursor.insertText("リストアイテム1");
    cursor.insertBlock();

    cursor.insertText("リストアイテム2");
    cursor.insertBlock();

    // 数字による番号付けを使用したリストを挿入
    cursor.insertList(decimalListFormat);
    cursor.insertText("リストアイテム3");
    cursor.insertBlock();

    cursor.insertText("リストアイテム4");
    cursor.insertBlock();

    return app.exec();
}

このコードを実行すると、円形の箇条書き記号と数字による番号付けを混在させたリストがテキストエディタに表示されます。



代替方法

  • QTextBlock::userState()関数を使用して、リストフォーマットに関するカスタムデータを格納および取得する
  • QTextCursor::currentListFormat().isValid()関数を使用して、リストフォーマットが有効かどうかを確認してから、QTextListFormat::style()関数を使用する
  • QTextCursor::currentListFormat().style()関数を使用する

詳細

  • QTextBlock::userState()関数

    この関数は、テキストブロックに関連付けられているカスタムデータを格納および取得するために使用されます。リストフォーマットに関するカスタムデータを格納するためにこの関数を使用することもできます。

  • QTextCursor::currentListFormat().isValid()関数

    この関数は、現在のカーソル位置におけるリストフォーマットが有効かどうかを確認します。リストフォーマットが有効な場合、trueを返します。そうでない場合は、falseを返します。QTextListFormat::style()関数を使用する前に、この関数を使用してリストフォーマットが有効かどうかを確認することをお勧めします。

  • QTextCursor::currentListFormat().style()関数

    この関数は、現在のカーソル位置におけるリストフォーマットのスタイルを取得します。QTextListFormat::style()関数と同様に、リストフォーマットのスタイルを表すQTextListFormat::Style型の値を返します。

#include <QApplication>
#include <QTextCursor>
#include <QTextEdit>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTextEdit textEdit;
    textEdit.show();

    QTextCursor cursor(textEdit->document());
    cursor.insertText("リストアイテム1");

    // リストフォーマットが有効かどうかを確認
    if (cursor.currentListFormat().isValid()) {
        // リストフォーマットのスタイルを取得
        QTextListFormat::Style style = cursor.currentListFormat().style();

        if (style == QTextListFormat::ListDisc) {
            // 挿入されたリストは円形の箇条書き記号を使用している
        }
    } else {
        // リストフォーマットは有効ではありません
    }

    return app.exec();
}

この例では、QTextCursor::currentListFormat().isValid()関数を使用して、リストフォーマットが有効かどうかを確認してから、QTextListFormat::style()関数を使用してリストフォーマットのスタイルを取得しています。