Study
Qt

Membuat Custom Widget: Subclass QWidget

Penjelasan

Untuk UI yang dipakai berulang (mis. kartu produk), sebaiknya dibungkus jadi class custom turunan QWidget — mirip component di React/Vue. Constructor-nya menyusun layout dan widget anaknya sendiri, sehingga class itu bisa dipakai ulang di banyak tempat cukup dengan satu baris instantiate.

Contoh Konsep

class KartuProduk : public QWidget
{
    Q_OBJECT

public:
    KartuProduk(const QString &nama, int harga, QWidget *parent = nullptr) : QWidget(parent)
    {
        QVBoxLayout *layout = new QVBoxLayout(this);
        layout->addWidget(new QLabel(nama));
        layout->addWidget(new QLabel(QString("Rp %1").arg(harga)));
    }
};

// Pemakaian:
// KartuProduk kartu1("Kaos CompileDaily", 99000);
// kartu1.show();

Praktikum

Buat class KartuArtikel (turunan QWidget) dengan constructor menerima QString judul dan QString penulis, menampilkan keduanya lewat QLabel tersusun QVBoxLayout.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Parameter QWidget *parent = nullptr di constructor adalah KONVENSI PENTING di Qt — kalau widget custom-mu diberi parent (mis. dipasang ke layout widget lain), Qt otomatis MENGELOLA memorinya (dihapus otomatis saat parent-nya dihapus), mencegah memory leak tanpa kamu perlu delete manual.