代码实现如下:
import sys
from PyQt5.QtWidgets import QHBoxLayout,QDesktopWidget,QMainWindow,QApplication,QWidget,QPushButton
#直接使用面向过程方式创建程序
def onClick_Button():
print("第一种方法:")
#输出窗口位置坐标
print("widget.x() = %d" % widget.x()) #250(窗口横坐标)
print("widget.y() = %d" % widget.y()) #200(窗口纵坐标)
print("widget.width() = %d" % widget.width()) #300(工作区宽度)
print("widget.height() = %d" % widget.height()) #340(工作区高度)
print('')
print("第二种方法:")
# 通过坐标系输出窗口位置坐标
print("widget.geometry().x() = %d" % widget.geometry().x()) #251(工作区横坐标,包含边框像素)
print("widget.geometry().y() = %d" % widget.geometry().y()) #231(工作区纵坐标,包含边框像素)
print("widget.geometry().width() = %d" % widget.geometry().width()) #300(工作区宽度)
print("widget.geometry().height() = %d" % widget.geometry().height()) #340(工作区高度)
print('两种方法y输出相差是因为工具栏存在高度31像素,输出的是工作区的左上角坐标')
print('')
#通过框架输出窗口坐标
print("widget.frameGeometry().x() = %d" % widget.frameGeometry().x()) #250(窗口横坐标)
print("widget.frameGeometry().y() = %d" % widget.frameGeometry().y()) #200(窗口纵坐标)
print("widget.frameGeometry().width() = %d" % widget.frameGeometry().width()) #302(窗口宽度,包含边框像素宽度)
print("widget.frameGeometry().height() = %d" % widget.frameGeometry().height()) #272(窗口高度,包含标题栏)
print('和第一种输出一样是输出窗口的坐标位置,但是高度含有标题栏')
app = QApplication(sys.argv)
#创建窗口
widget = QWidget()
btn = QPushButton(widget)
btn.setText("按钮")
#进行连接
btn.clicked.connect(onClick_Button)
#设置按钮的位置
btn.move(24,52)
#设置窗口尺寸
widget.resize(300,240) #设置工作区的尺寸(并不是设置整个窗口的尺寸)
#移动窗口
widget.move(250,200)
widget.setWindowTitle('屏幕坐标系')
widget.show()
sys.exit(app.exec_())
#定义单击事件
def onClick_Button():
print("onclick")