iT邦幫忙

0

請問是否有方法不使用 Layout 實現 QScrollArea 呢

  • 分享至 

  • xImage

各位大神好!
我是 PyQt5 的新手,我想把 QScollArea 做出滑動視窗的功能 (可能要用到 Timer,我還沒看資料),但搜尋網路的範例 QScrollArea 都用 Layout 來實現,根據我所查到的資料和實際操作的結果使用 Layout 後不能再用 move 或 setGeometry,請問是否有方法不使用 Layout 實現 QScrollArea 呢?

核心程式碼如下:https://ithelp.ithome.com.tw/upload/images/20250330/20162051IkaJIpEkmw.jpg

看更多先前的討論...收起先前的討論...
YC iT邦好手 1 級 ‧ 2025-03-31 13:20:44 檢舉
不太懂你的問題,要不要先把你的畫面畫出來?
To『YC』:應該說我不想用 QVBoxLayout 這種方式來實作 QScrollArea,因為我在 Steam 教育學習網查到的資料說一但使用 QVBoxLayout 後所有元件的位置是固定的,無法再用 move 或 setGeometry 的方式移動元件。我想要的是類似『label = QtWidgets.Qlabel (form)』這樣的實作方式,這樣 QScrollArea 在建立時就直接放到主視窗裡面,就不需要『setLayout』。至於滑動視窗,其實我是想做一個資料庫從左邊出現慢慢滑到定位,速度用 Timer 控制移動位置用 move 控制,現在只先求可以移動元件。很抱歉我無法把滑動視窗畫出來,但希望您聽了我的解釋後能夠了解我的問題,這個網站的各位都很熱情,再次感謝您的回覆。
可以先問問AI。

Copilot回答:
1. 直接使用 QScrollArea 的 setWidget 方法: 你可以將子元件(例如 QLabel 或其他 QWidget)添加到 QScrollArea 中,並使用 setWidget() 方法設定。接著可以手動調整子元件的位置和大小,而不需要透過 Layout。
2. 手動控制子元件的移動和尺寸: 如果你希望像使用 move 或 setGeometry 這樣的方式進行操作,可以將子元件直接添加到 QScrollArea 的內容窗口(content widget),並手動設定它們的位置。
3. 滑動效果: 若你提到需要滑動視窗效果,可以搭配 QTimer 使用,以控制子元件的位置逐步移動。

AI寫CODE的時代來臨了,未來不會用AI寫CODE的人會被取代的!
To『poiu124pat』:剛剛使用 Copilot 真的做出了我想要的效果,AI 確實很方便,未來應該會有很多工作降低技術門檻,薪資的高低也許會大洗牌 (勞力無法被機器人取代),但既然是世界潮流就坦然面對吧!謝謝您的回覆!
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答