Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
None
-
0baa15e68c7b2e009c1f81f81148939725c216c8
Description
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();
}