pyqt获取水平布局的按钮位置
时间: 2023-10-18 16:10:10 浏览: 165
Pyqt5 关于流式布局和滚动条的综合使用示例代码
可以使用 `QHBoxLayout` 的 `itemAt()` 方法获取布局中的子控件,并使用子控件的 `geometry()` 方法获取其位置和大小。以下是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout()
btn1 = QPushButton('Button 1', self)
btn2 = QPushButton('Button 2', self)
hbox.addWidget(btn1)
hbox.addWidget(btn2)
self.setLayout(hbox)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Horizontal Layout')
self.show()
# 获取按钮位置
for i in range(hbox.count()):
item = hbox.itemAt(i)
if item.widget():
print(item.geometry())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
运行该程序,可以在终端中看到输出如下内容:
```
PyQt5.QtCore.QRect(0, 0, 81, 23)
PyQt5.QtCore.QRect(81, 0, 81, 23)
```
这表示第一个按钮的位置是 (0, 0),大小是 (81, 23),第二个按钮的位置是 (81, 0),大小也是 (81, 23)。
阅读全文