簡體   English   中英

window 鼠標在邊緣時QScrollArea不起作用

[英]QScrollArea doesn't work when the mouse is at the edge of the window

簡介:我正在 C++ 中開發一個 Qt 應用程序,其中我在 window 的右側使用 QScrollArea 實現了一個垂直菜單。菜單可以包含無限數量的對象,所以我需要一個垂直 slider 和一個用戶選項滾動對象。

window的設計

問題:滾動條工作正常,直到我的鼠標位於 window 的最邊緣(右側)。例如,當 window 最大化時,我想將鼠標移動到屏幕的右邊緣,按下它並移動垂直滾動條。 但是,直到我將鼠標向左移動 1px 或更多時,滾動條才起作用。 (window 不必最大化,滾動條和操作系統的 window 調整大小功能之間仍然有 1px 厚的區域)

Object 層次結構:我的 QMainWindow 包含一個 QSplitter(窗口的中央小部件),它包含左側的環境和右側的 SequenceDiagramMenu。 最后,SequenceDigramMenu 包含在 window 的右邊緣可見的 QScrollArea。

我試圖在 my.ui 文件中搜索邊距,但沒有找到任何內容。 無論如何,我試圖將所有提到的組件(窗口、拆分器、菜單、滾動區域)的邊距設置為零,但這也無濟於事。 我也試過使 SequenceDiagramMenu 成為 window 的中央小部件,但這也無濟於事。 我還沒有嘗試的是使 SequenceDiagramMenu 從 QScrollArea 繼承,因此滾動區域不會在菜單中,而是菜單中。 我試圖避免這種情況,因為我使用的是 Qt forms,我懷疑它是否有幫助。

編輯:我將中央小部件一直延伸到底部,似乎環境的水平滾動條(拆分器的左側)也有同樣的問題。

這可能看起來像是一個小錯誤,但我相信它會在使用該應用程序幾分鍾后極大地惹惱用戶。

有沒有人遇到過這個問題?

謝謝

解決方案和對@mrg95 的回復

最初,我沒有對那里的任何組件應用任何樣式表。

但是,我只是嘗試將QScrollArea的邊框設置為none並且它起作用了,盡管正如您所預測的那樣。 設計不合適。

但! 在查看菜單的.ui文件時,我有一個想法並嘗試將QScrollAreaQFrameframeShape設置為NoFrame並且現在一切正常(看起來很愚蠢我沒有早點嘗試,但我確實嘗試過將框架寬度設置為 0px,這沒有幫助)。 設計保持原樣,即使在 window 的最邊緣也可以滾動。

無論如何,滾動區域最初被包裹在一個框架中並且無法通過拖動邊緣來移動滾動條對我來說仍然很奇怪,但至少現在我(以及正在尋找它的每個人)都會知道解決方案......

謝謝,因為您的提示非常有幫助,即使經過無數個小時,我自己也無法弄清楚。

暫無
暫無

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

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