我正在嘗試使用一個小部件來顯示文本,當添加更多文本時,該小部件將垂直滾動。
不過,我無法弄清楚如何讓文本滾動。我最接近的是啟用滾動,但您必須在附加文本時手動向下滾動。我還沒有找到“鎖定”調整大小的方法;如果不將 TextGrid 放入滾動容器,應用程式的大小似乎會跳到監視器邊界之外。
有沒有辦法讓 TextGrid 自動滾動?
appClient := app.New()
winWindow := appClient.NewWindow("Test")
txtEntry := widget.NewEntry()
txtStatus := widget.NewLabel("Status")
txtResults := widget.NewTextGrid()
txtResults.ShowLineNumbers = true
btnQuit := widget.NewButton("Quit", func() {
appClient.Quit()
})
btnQuit.Resize(fyne.NewSize(300, 300))
cntScrolling := container.NewScroll(txtResults)
cntButtons := container.NewGridWithColumns(4, layout.NewSpacer(), layout.NewSpacer(), layout.NewSpacer(), btnQuit)
cntContent := container.NewGridWithRows(4, txtEntry, txtStatus, cntScrolling, cntButtons)
winWindow.Resize(fyne.NewSize(1200, 600))
winWindow.SetContent(cntContent)
go func() {
for {
select {
case strMessage := <-chnSendMessageToClientWindow:
txtResults.SetText(strings.TrimPrefix(txtResults.Text() "\n" strMessage, "\n"))
cntScrolling.Refresh()
}
}
}()
winWindow.ShowAndRun()
uj5u.com熱心網友回復:
您可能正在尋找cntScrolling.ScrollToBottom()
當您將專案包裝在滾動容器中時,無法在添加新內容時自動向下或向右滾動,但是每次添加內容時該行都會這樣做。
我還沒有找到“鎖定”調整大小的方法
fyne 中的專案通常是最小尺寸(打包內容)或擴展以填充空間。在兩者之間“鎖定大小”是不明智的,因為這樣 UI 就不能很好地跨螢屏和視窗大小縮放。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338494.html
上一篇:如何在鏈碼中獲得HyperledgerFabric狀態的創建者?
下一篇:包名和變數是否應該避免陰影?
