-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
None
-
0baa15e68c7b2e009c1f81f81148939725c216c8
This can be reproduced using the following test code.
First check "Glen Waverley", "Richmond" and
"Mentone", then unchecked "Melb". This issue has been reproduced on various versions of Windows.
#include <QtGui>
class MyWidget: public QWidget
{
public:
MyWidget(QWidget *parent = 0);
private:
QHBoxLayout *layout;
QTreeWidget *tw;
};
MyWidget::MyWidget(QWidget *parent)
{
setWindowTitle("Support Tester");
layout = new QHBoxLayout;
tw = new QTreeWidget();
QTreeWidgetItem *country = new QTreeWidgetItem(tw);
Qt::ItemFlags myFlags = country->flags();
myFlags |= Qt::ItemIsTristate | Qt::ItemIsUserCheckable;
country->setFlags(myFlags);
country->setCheckState(1,Qt::Unchecked);
country->setText(0, tr("Countries"));
QTreeWidgetItem *cities = new QTreeWidgetItem(country);
cities->setFlags(myFlags);
cities->setCheckState(0,Qt::Unchecked);
cities->setText(0, tr("Cities"));
// QTreeWidgetItem *forests = new QTreeWidgetItem(country);
// forests->setFlags(myFlags);
// forests->setCheckState(0,Qt::Unchecked);
// forests->setText(0, tr("Forests"));
QTreeWidgetItem *melbItem = new QTreeWidgetItem(cities);
melbItem->setFlags(myFlags);
melbItem->setText(0, tr("Melb"));
melbItem->setText(1, tr("Yes"));
melbItem->setCheckState(0,Qt::Unchecked);
QTreeWidgetItem *glenItem = new QTreeWidgetItem(melbItem);
glenItem->setFlags(myFlags);
glenItem->setText(0, tr("Glen Waverley"));
glenItem->setText(1, tr("Yes"));
glenItem->setCheckState(0,Qt::Unchecked);
QTreeWidgetItem *richItem = new QTreeWidgetItem(melbItem);
richItem->setFlags(myFlags);
richItem->setText(0, tr("Richmond"));
richItem->setText(1, tr("Yes"));
richItem->setCheckState(0,Qt::Unchecked);
QTreeWidgetItem *mentItem = new QTreeWidgetItem(melbItem);
mentItem->setFlags(myFlags);
mentItem->setText(0, tr("Mentone"));
mentItem->setText(1, tr("Yes"));
mentItem->setCheckState(0,Qt::Unchecked);
QTreeWidgetItem *osloItem = new QTreeWidgetItem(cities);
osloItem->setFlags(myFlags);
osloItem->setText(0, tr("Oslo"));
osloItem->setText(1, tr("Yes"));
osloItem->setCheckState(0,Qt::Unchecked);
QTreeWidgetItem *bonnItem = new QTreeWidgetItem(cities);
bonnItem->setFlags(myFlags);
bonnItem->setText(0, tr("Bonn"));
bonnItem->setText(1, tr("Yes"));
bonnItem->setCheckState(0,Qt::Unchecked);
tw->addTopLevelItem(cities);
layout->addWidget(tw);
setLayout(layout);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget *myWin = new MyWidget();
myWin->show();
return app.exec();
}