I have a situation that I require some additional insight to solve. I have elected not to post any code at this time because the whole program is rather large and bulky, and I think to isolate just the code involved would be time prohibitive. In any event, I’m not too sure the problem involves the actual code or, what I believe is more likely, that I’m missing some switch, understanding or knowledge about the Qt environment that may be affecting the situation.

The situation is that I have sub-classed QAbstractItemModel to create a model that uses a similar paradigm as the parent child relationship used in a tree model. The main window displays the values from the model in a treeView, and about half of those values are being constantly updated. The update is initiated by a QTimer in the main window code, that emits a signal which is connected to a slot in the model class, which after insuring the models data is updated, emits the dataChanged signal.

Some of the components in the model represent objects that are moving in a three dimensional space and the signal mentioned above is used to indicate that the next movement is to take place. Not only are the geographic coordinates displayed in the treeView, if the user has so selected, an additional window is shown that has a map as it’s background and the objects position is shown as an icon on that map. The class that computes the next position is the same class that initiates and controls the graphic representation on the map. Every instance of that class is moved to it’s own thread when it is instantiated. All communication between any instances of this class with the model, or any other component of the program is performed solely with signals and slots. On a bit of a different issue, is there a way to see a representation of this communication concerning signals and slots while debugging?

In any event, every class, function and operational item appears to work just fine. I have been able to prove that every instantiation of an object that computes location and controls movement is performing its tasks correctly and that it is on a different thread. The problem is that, even though the treeView should be showing certain elements updating 10 times a second in the main window display, the treeView appears to only update when you move the mouse directly over the treeView portion of the main display. Every time the mouse movement stops, even to change direction, or moves off the treeView portion of the display, any values that were updating, immediately stop doing so.

At this point, I can only assume that for some reason, the dataChanged signal is emitted whenever the mouse is moving over thetreeView and not emitted when I expect it to be. When examining the code, It looks as if it should be properly emitted at the correct time and I can’t even guess why the signal would only be emitted whenever the mouse is moving over the treeView. I’m hoping someone can provide some insight into my problem and I’d like to thank anyone in advance that does