PyQT5 (四)获取控件或窗口坐标的3种方法

 代码:

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

def onClick_Button():
    print('获取坐标:第一种')
    print("widget.x() = %d" % widget.x())
    print("widget.y() = %d" % widget.y())
    print("widget.width() = %d" % widget.width())
    print("widget.height() = %d" % widget.height())

    print('获取坐标:第二种')
    print("widget.geometry().x() = %d" % widget.geometry().x())
    print("widget.geometry().y() = %d" % widget.geometry().y())
    print("widget.geometry().width() = %d" % widget.geometry().width())
    print("widget.geometry().height() = %d" % widget.geometry().height())

    print('获取坐标:第3种')
    print("widget.frameGeometry().x() = %d" % widget.frameGeometry().x())
    print("widget.frameGeometry().y() = %d" % widget.frameGeometry().y())
    print("widget.frameGeometry().width() = %d" % widget.frameGeometry().width())
    print("widget.frameGeometry().height() = %d" % widget.frameGeometry().height())

app = QApplication(sys.argv)
widget = QWidget()
btn = QPushButton(widget)
btn.setText('按钮')
btn.move(25,42)
btn.clicked.connect(onClick_Button)
widget.resize(300,240)
widget.move(250,200)
widget.setWindowTitle('获取屏幕坐标系')
widget.show()
sys.exit(app.exec_())

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中,想要实现控件跟随窗口大小的变化,可以使用QWidget的resizeEvent事件。resizeEvent会在窗口大小变化时被触发。 首先,需要在窗口的构造函数或初始化函数中为控件设置一个初始位置和大小。然后,通过重写QWidget的resizeEvent方法,实现控件窗口变化而调整。 以下是实现的思路和示例代码: 1. 选择一个合适的初始位置和大小,比如通过设置控件的初始x、y坐标和宽高。 2. 在窗口的构造函数或初始化函数中创建控件,并设置初始位置和大小。 3. 在控件所属的窗口类中重写resizeEvent方法。 4. 在resizeEvent方法获取窗口的新大小,并根据需要进行计算控件的新位置和大小。 5. 使用控件的setGeometry方法,设置控件的新位置和大小。 下面是一个简单的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("控件跟随窗口大小变化示例") self.setGeometry(100, 100, 500, 300) # 设置窗口初始位置和大小 # 创建一个标签控件,并设置初始位置和大小 self.label = QLabel("这是一个标签", self) self.label.setGeometry(10, 10, 100, 30) def resizeEvent(self, event): # 获取窗口的新大小 window_size = event.size() # 设置控件的新位置和大小 self.label.setGeometry(10, 10, window_size.width() - 20, 30) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) ``` 在这个示例中,创建了一个窗口和一个标签控件窗口的resizeEvent方法通过计算新的窗口大小调整了标签控件位置和大小,使其始终保持在窗口的左上角。当窗口大小变化时,标签控件会自动跟随变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值