PyQt5程式設計(23):在視窗中佈局元件—絕對定位
當將幾個元件放置在視窗中時,要考慮他們的相對位置和最小尺寸的問題。預設的視窗大小是可以改變的,因此,有必要攔截resizing 事件,調整每個部件的位置和大小。 PyQt庫提供許多具有這些功能的元件 - 容器。我們所需要的是選擇正確的容器,以特定順序新增元件,然後將容器放在視窗或另一個容器中。
1.絕對定位
在討論容器之前,讓我們考慮元件在視窗中的絕對定位。如果在建立元件時指定了其他父元件,那麼他的預設顯示位置為座標(0,0)。也就是說,如果新增了多個元件,它們將全部顯示在相同的位置,彼此重疊。最後一個新增的元件將位於此堆的頂部,其餘元件將僅部分可見或根本不可見。新增的元件的大小取決於他的內容。
要移動元件,可以使用move()方法;調整其大小用resize()方法。同時更改位置和大小,可使用setGeometry()方法。
下面程式碼為在視窗中顯示題字和按鈕,並指定每個元件的位置和尺寸。
-- coding: utf-8 --
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("元件的絕對定位")
window.resize(300, 120)
label = QtWidgets.QLabel("Label元件", window)
button = QtWidgets.QPushButton("按鈕元件", window)
label.setGeometry(10, 10, 280, 60)
button.resize(280, 30)
button.move(10, 80)
window.show()
sys.exit(app.exec_())
絕對定位的缺點:
視窗變化時,要在程式碼中對每個元件的位置及大小進行調整;
使用固定大小,標籤元件上的文字可能不能完整顯示。不同作業系統的預設字型並不相同,所以固定大小難以實現跨平臺。此外,由於同一內容的不同語言文字長度存在差異,使用固定大小也難以實現程式介面的跨語言。
相關文章
- 好程式設計師web前端教程分享web中CSS絕對定位程式設計師Web前端CSS
- PyQT5之設定視窗控制元件風格QT控制元件
- PyQt5視窗繪圖控制元件QT繪圖控制元件
- Qt 佈局管理 - 停靠視窗QT
- CSS中的絕對定位與相對定位CSS
- PyQt5 GUI程式設計(元件使用)QTGUI程式設計元件
- PyQt5——視窗繪圖類控制元件QT繪圖控制元件
- PyQT5視窗樣式設定QT
- [譯]在 Flutter 中如何設計線性佈局?Flutter
- 第十四章:絕對佈局(三)
- 第十四章:絕對佈局(五)
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- css中絕對定位與相對定位的區別CSS
- PyQt5 之主視窗QT
- PyQT5之視窗QT
- 在畫中畫視窗中安裝 React 元件React元件
- CSS絕對定位CSS
- PyQt5 之視窗居中QT
- css-前端實現左中右三欄佈局的常用方法:絕對定位,聖盃,雙飛翼,flex,table-cell,網格佈局等CSS前端Flex
- CSS基本佈局——定位CSS
- 元素的相對定位與絕對定位
- pyqt5建立主視窗(介紹視窗型別)QT型別
- qt介面佈局之使視窗顯示出現在正中間位置QT
- 在不把視窗設定成當前視窗的條件下,對視窗進行操作。
- PyQt5 帶視窗圖示QT
- PyQt5 之關閉視窗QT
- Rust 程式設計:記憶體佈局Rust程式設計記憶體
- Android 多視窗程式設計Android程式設計
- tkinter中frame佈局控制元件控制元件
- Flutter基礎-012-Stack絕對佈局Flutter
- 辛星和你徹底搞清CSS中的相對定位和絕對定位CSS
- 網頁設計中的響應式佈局設計網頁
- Flutter | 佈局元件Flutter元件
- qt 設計介面中 scrollarea等子控制元件內部widget佈局方法QT控制元件
- css絕對定位和相對定位的差別CSS
- # CSS 絕對定位釋義CSS
- CSS position:absolute 絕對定位CSS
- CSS position: absolute 絕對定位CSS