【初心者向け】Qt WidgetsでQListWidgetItemを使う:QListWidgetItem::QListWidgetItem()の解説とサンプルコード
QListWidgetItem::QListWidgetItem()
は、Qt WidgetsライブラリにおけるQListWidgetItemクラスのコンストラクタの一つです。このコンストラクタは、新しいQListWidgetItemオブジェクトを作成するために使用されます。
構文
QListWidgetItem::QListWidgetItem(QListWidget *parent = 0, int type = Type);
QListWidgetItem::QListWidgetItem(const QString &text, QListWidget *parent = 0, int type = Type);
QListWidgetItem::QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = 0, int type = Type);
QListWidgetItem::QListWidgetItem(const QListWidgetItem &other);
引数
type
: リストアイテムの種類を指定します。デフォルトはTypeです。icon
: リストアイテムに表示されるアイコンを指定します。text
: リストアイテムに表示されるテキストを指定します。parent
: 親となるQListWidgetオブジェクトを指定します。省略すると、親オブジェクトは指定されません。
戻り値
新しいQListWidgetItemオブジェクトを返します。
詳細
上記の構文のうち、最初の2つの構文は、テキストとアイコンを指定せずにQListWidgetItemオブジェクトを作成します。3番目の構文は、テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。4番目の構文は、既存のQListWidgetItemオブジェクトのコピーを作成します。
QListWidgetItemオブジェクトは、QListWidgetウィジェット内に表示されるアイテムを表します。QListWidgetItemオブジェクトには、テキスト、アイコン、チェック状態、フォント、背景色などのプロパティを設定することができます。
// 親となるQListWidgetオブジェクトを作成します。
QListWidget *listWidget = new QListWidget();
// テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item1 = new QListWidgetItem(QIcon(":/images/icon.png"), "Item 1", listWidget);
// テキストのみを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item2 = new QListWidgetItem("Item 2", listWidget);
// 既存のQListWidgetItemオブジェクトのコピーを作成します。
QListWidgetItem *item3 = new QListWidgetItem(*item1);
// 作成したQListWidgetItemオブジェクトをQListWidgetウィジェットに追加します。
listWidget->addItem(item1);
listWidget->addItem(item2);
listWidget->addItem(item3);
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 親となるQListWidgetオブジェクトを作成します。
QListWidget *listWidget = new QListWidget();
// テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item1 = new QListWidgetItem(QIcon(":/images/icon.png"), "Item 1", listWidget);
// テキストのみを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item2 = new QListWidgetItem("Item 2", listWidget);
// 既存のQListWidgetItemオブジェクトのコピーを作成します。
QListWidgetItem *item3 = new QListWidgetItem(*item1);
// 作成したQListWidgetItemオブジェクトをQListWidgetウィジェットに追加します。
listWidget->addItem(item1);
listWidget->addItem(item2);
listWidget->addItem(item3);
// QListWidgetウィジェットを表示します。
listWidget->show();
return app.exec();
}
例2:QListWidgetItemオブジェクトのプロパティを設定する
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 親となるQListWidgetオブジェクトを作成します。
QListWidget *listWidget = new QListWidget();
// テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item = new QListWidgetItem(QIcon(":/images/icon.png"), "Item 1", listWidget);
// フォントを設定します。
item->setFont(QFont("Arial", 16));
// 背景色を設定します。
item->setBackgroundColor(QColor(Qt::lightGray));
// チェック状態を設定します。
item->setCheckState(Qt::Checked);
// 作成したQListWidgetItemオブジェクトをQListWidgetウィジェットに追加します。
listWidget->addItem(item);
// QListWidgetウィジェットを表示します。
listWidget->show();
return app.exec();
}
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 親となるQListWidgetオブジェクトを作成します。
QListWidget *listWidget = new QListWidget();
// テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item = new QListWidgetItem(QIcon(":/images/icon.png"), "Item 1", listWidget);
// itemClickedシグナルに接続します。
connect(item, &QListWidgetItem::itemClicked, [=]() {
qDebug() << "Item clicked: " << item->text();
});
// 作成したQListWidgetItemオブジェクトをQListWidgetウィジェットに追加します。
listWidget->addItem(item);
// QListWidgetウィジェットを表示します。
listWidget->show();
return app.exec();
}
QListWidgetItem::QListWidgetItem()
は、Qt WidgetsライブラリにおけるQListWidgetItemクラスのコンストラクタの一つで、新しいQListWidgetItemオブジェクトを作成するために使用されます。しかし、状況によっては、QListWidgetItem::QListWidgetItem()
の代替方法の方が適切な場合があります。
代替方法
QListWidgetItem::QListWidgetItem()
の代替方法としては、以下の方法が考えられます。
- QListWidgetItem(const QListWidgetItem &other):既存のQListWidgetItemオブジェクトのコピーを作成します。
- QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = nullptr, int type = Type):テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
- QListWidgetItem(const QString &text, QListWidget *parent = nullptr, int type = Type):テキストのみを指定してQListWidgetItemオブジェクトを作成します。
具体的な使い分け
- 既存のQListWidgetItemオブジェクトを基に新しいオブジェクトを作成したい場合:
QListWidgetItem(const QListWidgetItem &other)
- テキストとアイコンを表示したい場合:
QListWidgetItem(const QIcon &icon, const QString &text)
- テキストのみを表示したい場合:
QListWidgetItem(const QString &text)
例
// テキストのみを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item1 = new QListWidgetItem("Item 1");
// テキストとアイコンを指定してQListWidgetItemオブジェクトを作成します。
QListWidgetItem *item2 = new QListWidgetItem(QIcon(":/images/icon.png"), "Item 2");
// 既存のQListWidgetItemオブジェクトのコピーを作成します。
QListWidgetItem *item3 = new QListWidgetItem(*item2);
上記以外にも、以下の方法でQListWidgetItemオブジェクトを作成することができます。
- QModelIndexを使用してQListWidgetItemを作成する: QListViewやQTableViewなどのモデルビューコントロールで使用する場合などに有効です。
- QWidgetをQListWidgetItemに設定する: 複雑なコンテンツを表示したい場合などに有効です。