Nominate our 2022 Qt Champions!

Possible Qt Bug: Tool Tips on QTreeView using Proxy Widget with ItemIgnoresTransformations

  • I'm using a QGraphicsScene and needed an embedded QTreeView, which I've done using a QGraphicsProxyWidget, and for the most part, it's working well. I have ItemIgnoresTransformations set on the proxy widget because the scene's aspect ratio may change, and it's important that the text not be distorted in the tree view. I also need tool tips on some of the items in the tree view, and a dialog box when the user selects a row in the tree. To position the dialog, I use visualRect for the selected item and convert the coordinates to get what I need.

    In this case, the rows are taller with ItemIgnoresTransformations set than when it isn't.

    If I remove the ItemIgnoresTransformations flag, the tool tips and dialog positioning are absolutely correct, but of course, the text is distorted to match the aspect ration of the scene. With the flag turned on, it appears that not all of the internal Qt functionality is properly obeying the flag and handling coordinates as if the flag were not turned on.

    For the tool tips, the QModelIndex passed to the "data" method doesn't correctly reflect the item the mouse is over. It's pretty accurate for items near the top of the view, but as I move down the view, it starts to have problems. It either doesn't recognize a row as being present under the cursor, or it starts providing model indexes for rows further down.

    The visualRect appears to have a similar problem. It appears to be returning the coordinates of the selected item from the position where that item would be if the ItemIgnoresTransformations flag were not set, so my dialog position is wrong, and the further from the top of the tree, the more wrong it gets.

    I'm using Qt 4.7.1 currently; I'll be upgrading to the current release soon. Has anyone hit this problem, and is there a work-around?

    If this is a previously unreported bug, how do I go about filing a big report? I have a commercial license if that makes any difference.


Log in to reply