簡體   English   中英

滾動但在NCurses包裹墊

[英]Scrolling but wrapped pad in NCurses

我正在努力使文本閱讀器/偽命令行成為一個man ,但我很難按照我喜歡的方式滾動文本。 起初我在滾動時遇到新文本時遇到了麻煩,但最終我發現墊片會為我修復,我現在正在整合它們。

我的問題是,我怎樣才能將文字包裹在墊內? 我的程序當前調整大小時會自動刷新,因此將pad定義為具有與終端一樣多的列將無法修復所有內容。 當我的終端收到KEY_RESIZE時,我可以根據需要讓墊自動調整大小嗎? 不僅僅是顯示的尺寸,還有墊的尺寸,這樣由於墊的末端,文本被向下推。 另外,調整大小仍會保留文本,必要時將其向下移動,或者我是否需要刷新打擊墊的內容?

不幸的是,我很難找到具有這些細節的資源,而ncurses中的文檔沒有詳細說明調整pad的大小。

非常感謝!


回答后編輯:ncurses沒有這樣做,所以我打算嘗試制作一些字符串數組,一個用於存儲文件中的文本(在\\n處斷開),另一個用於換行(在KEY_RESIZEKEY_RESIZE每個字符串具有終端行的最大長度,其中一部分基於滾動位置等打印到主體窗口。 我正在進行此編輯,以便將來看到此問題的任何人都能看到我的解決方案。 我還沒有這樣做,所以如果它失敗我會再次編輯它。 再次感謝Stack Overflow幫助解決這個問題!

在這種情況下,ncurses不會做你想要的事情:

  • pad就像一個窗口,true, addch將換行 - 但是用於在pad中顯示數據的視口不是窗口,並且在pad的右側包裝不一定與該視口相關。
  • 一旦文本被包裝,ncurses將不記得那是什么,並且如果你調整窗口(或填充)的大小,則重新包裝文本。
  • 當您只想顯示窗口的一部分時,例如,如果屏幕不夠大,無法顯示要顯示的文本,則墊片非常有用。

如果你想調整大小並重新包裝,你的程序應該允許重寫窗口中的所有文本(按照你的意圖進行布局),而不是依賴ncurses來決定如何重新包裝文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM