#include #include #include class tristate : public QTreeWidget { Q_OBJECT public: tristate(QWidget *parent = 0) : QTreeWidget(parent) { allDrives = new QTreeWidgetItem(this, QStringList() << QObject::tr("Drives")); diskC = new QTreeWidgetItem (allDrives, QStringList() << "C:"); diskD = new QTreeWidgetItem (allDrives, QStringList() << "D:"); allDrives->setCheckState(0,Qt::Checked); diskC->setCheckState(0,Qt::Checked); diskD->setCheckState(0,Qt::Checked); allDrives->setFlags(Qt::ItemIsUserCheckable |Qt::ItemIsEnabled | Qt::ItemIsTristate); }; private: QTreeWidgetItem* allDrives; QTreeWidgetItem* diskC; QTreeWidgetItem* diskD; }; #include "main.moc" int main(int argc, char *argv[]) { QApplication a(argc, argv); tristate t; t.show(); return a.exec(); }