Hi JCarpenter,
I met exactly same issue as you did.

I tried to subclass QTextEdit:: paintEvent() and do the border painting work myself,
but I found QTextEdit:: paintEvent is actually the Paint handler for QTextEdit::viewport() who has installed an eventfilter, NOT for painting QTextEdit itselft.

On my way of testing I found a solution
Qt Code:
  1. bool AttachmentListEdit::event(QEvent* e)
  2. {
  3. #ifdef Q_OS_WIN
  4. switch (e->type())
  5. {
  6. case QEvent::Paint:
  7. // skip QFrame::paintEvent() to prevent buggy border painting
  8. e->accept();
  9. return true;
  10. default:
  11. break;
  12. }
  13. #endif
  14.  
  15. return QTextEdit::event(e);
  16. }
To copy to clipboard, switch view to plain text mode 

Though it works for me, I can not explain it exactly.
I've no idea who finally paint the border but I'm going to dig out.
I'm using Qt4.7.4