背景如何將寬度和高度(以像素爲單位)轉換爲用於python庫pyte的列?
我正在使用Python的圖形SSH客戶端。我使用PySide作爲GUI,Paramiko用於ssh交互的分支和一個名爲Pyte的庫用於終端仿真。
問題
我無法弄清楚如何正確調整相對於PySide的QTextEdit的pyte終端被調整。我似乎只能得到像素的QTextEdit的寬度和高度,而不是pyte庫的Screen.resize()函數所需的列和行。
是否有無論如何1.獲取QTextEdit的列和行數或2.以所有系統中準確的方式將像素寬度和高度轉換爲列和行?
建議的解決方案
替換定製的QTextEdit.resizeEvent()函數調整大小的事件處理程序,這將調用Screen.resize()pyte的函數來調整終端匹配的QTextEdit的新大小小部件。
如果有一個更簡單的解決方案,我非常樂意接受創意。
終端字體總是一個固定大小的,所以我懷疑它只是乘以或通過合適的尺寸劃分的問題。 – Blckknght 2012-08-13 11:15:17
我一直在玩整夜,採取字體大小和轉換他們的像素大小和除以QWidget幾何高度和寬度,以確定列和線,但迄今不是100%準確的,雖然對列看起來幾乎總是比我需要的地方多1個字符。不幸的是,一個QFontMetric對象需要maxWidth()(這個時間太長)或者將一個unicode字符傳遞給width(),以便將點轉換爲像素(因此,如果我將事物並不總是100%準確的使用比我選擇的字符更大的幾個字符)。 – Benjamin 2012-08-13 21:25:36