我需要創建一個滾動的,自行繪製的窗口小部件,其行爲很像0與自動換行文本,在高度依賴於寬的意義 - 爲內容寬度減小,內容高度增加。的Qt:如何創建一個滾動的,自行繪製控件
這樣做的最佳方法是什麼?我正在考慮將我的QWidget-derived
類放在QScrollArea
之內,但是QPlainTextEdit
是從QScrollArea
派生的,我應該走那條路線嗎?
另外,我想在paintEvent()
畫只可見區域,這將是浪費的,否則。
現在我正在檢查QPlainTextEdit
的代碼,但它相當複雜且不易閱讀,所以如果有人知道在網絡上更簡單的代碼示例,您可以給我一個鏈接,它會幫助很多。
你肯定希望它是一個'QScrollArea'除非你喜歡你自己的滾動重新實現。我認真看待'QListView',因爲它幾乎完成了所有這些工作,並且可以完全控制渲染每段文本時想要的效果。它比'QPlainTextEdit'執行得更好(帶[警告](http://stackoverflow.com/a/18579171/1329652))。獲得編輯功能會有點棘手。一個顯示'QStringListModel'的裸列表視圖就像一個用於常量數據的純文本編輯:) –