I can reproduce this.
Code:
calibre, version 4.9.0
ERROR: Unhandled exception: <b>TypeError</b>:unbound method toPlainText() must be called with PlainTextEdit instance as first argument (got QPlainTextEdit instance instead)
calibre 4.9 [64bit] embedded-python: True is64bit: True
Windows-10-10.0.18362-SP0 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.18362')
Python 2.7.16+
Windows: ('10', '10.0.18362', 'SP0', u'Multiprocessor Free')
Interface language: None
Successfully initialized third party plugins: DeDRM (6, 3, 3) && KePub Output (3, 1, 3) && KePub Metadata Writer (3, 0, 3) && Quality Check (1, 9, 11) && Amazon hi-res covers (0, 1, 0) && Modify ePub (1, 4, 0) && Kobo Books (1, 8, 0) && Favourites Menu (1, 0, 5) && BookFusion Plugin (0, 3, 2) && Kobo Utilities (2, 9, 0) && Count Pages (1, 9, 0) && Hyphenate This! (0, 0, 9) && ScrambleEbook (0, 4, 1) && Reading List (1, 6, 7) && Annotations (1, 12, 0) && EpubSplit (2, 8, 0) && Find Duplicates (1, 6, 4) && Diaps Editing Toolbag (0, 3, 6) && KePub Metadata Reader (3, 0, 2) && KoboTouchExtended (3, 1, 5) && Set KFX metadata (from KFX Output) (1, 38, 0) && KFX Output (1, 38, 0) && EpubCheck (0, 2, 2) && KindleUnpack - The Plugin (0, 82, 1)
Traceback (most recent call last):
File "site-packages\calibre\gui2\comments_editor.py", line 1142, in change_tab
TypeError: unbound method toPlainText() must be called with PlainTextEdit instance as first argument (got QPlainTextEdit instance instead)