As long as you are thinking along these lines, I'd start by reading this QtQuarterly article from start-to-finish.
Designing Qt-Style C++ APIs
That said, one thing that we do is to put the "use" of the instance as the first part and the last full word of the class as the last part.
So, your "user name" QTextEdit is
QTextEdit * userNameEdit = new QTextEdit(this);
If there is ambiguity, such as QListView and QTreeView, pick the last unabiguous section.
QListView * userListView;
You can figure out abbreviations how you like (such as "Lbl" for QLabel), but generally, the whole word has worked and has been easy to read.
On the other hand, we are not too strict about this and it might be more important to name the intention of the instance variable without the class name because if, in the future, you want to change the class, you get to change the name which, in the absence of good refactoring tools, is a pain.
Maybe figure out the general widgets you use the most, and pick a naming convention for the most general super-classes and let everything else go.
Example list of things that adhere to the convention:
- layout = All classes that end in
"Layout" and inherit QLayout
- button = All classes that end in "Button" and inherit QAbstractButton
The QAbstract*ClassName* classes are a good place to think about what should be in that list.