However, when I change it to public I still get the same problem. So that can't be it.
As I said before, and as stampede reiterated, if you are doing this:

Qt Code:
  1. void SomeClass::someMethod()
  2. {
  3. QPointer<QLineEdit> txtNewCareer = new QLineEdit;
  4.  
  5. // ...
  6. }
To copy to clipboard, switch view to plain text mode 

The variable "txtNewCareer" in someMethod() is not the same variable as the one in your class definition. It is a local variable, defined only within the scope of someMethod(). Even if it has the same name as the one in your class definition, it is a different variable and "hides" the one defined in your class. So you are initializing a variable that goes out of scope as soon as the method exits (and creates a memory leak in the process). The variable named txtNewCareer in your class definition is never initialized (except to set it to NULL by the default QPointer constructor), and so when you go to use it, it segfaults.

If you still don't understand this and why what you're doing is wrong, go back to your C++ books and read about scoping.

Should I make it public?
If you really need to get access to the QLineEdit pointer from outside your class, then don't make it a public variable, add a method to safely retrieve the pointer from your class: QPointer< QLineEdit > getLineEdit() const;

But that is nearly as bad an idea as making the variable public, because you have no control over how it is used, and if you change your UI design, everywhere that that pointer is used will have to be changed also. It makes your code fragile. Probably what you actually need is access to the contents of the QLineEdit, not to the widget itself. So in that case, provide getter and setter methods to get or set the QLineEdit text:

Qt Code:
  1. QString getText() const
  2. {
  3. return txtNewCareer->text();
  4. }
  5.  
  6. void setText( const QString & text )
  7. {
  8. txtNewCareer->setText( text );
  9. }
To copy to clipboard, switch view to plain text mode 

Even if you change the UI to use something instead of a QLineEdit, the rest of your program won't care. The only two lines you'll need to change are the lines that access the QLineEdit from within your getter and setter methods.