1 怎么实现主窗口居中显示?
- 让主窗口居中,其实便是让窗口的左右边际到左右屏幕间隔持平,让窗口的上下边际到上下屏幕的间隔持平;
- 主要是需求进行核算和移动工作;
- 可以运用
QDesktopWidget
类来获取屏幕的巨细和方位信息,然后依据这些信息核算出窗口的方位和巨细; -
QDesktopWidget().screenGeometry()
可以获取到屏幕坐标:
def screenGeometry(self, *__args): # real signature unknown; restored from __doc__ with multiple overloads
"""
screenGeometry(self, screen: int = -1) -> QRect
screenGeometry(self, QWidget) -> QRect
screenGeometry(self, QPoint) -> QRect
"""
pass
- 具体步骤如下:
1.1 获取屏幕坐标
- 首要获取到屏幕坐标系:
screen = QDesktopWidget().screenGeometry()
1.2 获取窗口坐标
- 运用
geometry()
办法获取到当前窗口的坐标:
size = self.geometry()
1.3 居中核算
- 然后进行核算,屏幕坐标减窗口坐标对应核算:
l = (screen.width() - size.width()) / 2
t = (screen.height() - size.height()) / 2
1.4 移动方位
- 最后便是移动窗口到核算好的方位即可:
self.move(l, t)
1.5 完整代码
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/2
# 文件名称:test021_CenterForm.py
# 效果:窗口居中
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget
class CenterForm(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("标准窗口")
self.resize(500, 400)
def center(self):
# 取得屏幕坐标
screen = QDesktopWidget().screenGeometry()
# 获取窗口坐标系
size = self.geometry()
l = (screen.width() - size.width()) / 2
t = (screen.height() - size.height()) / 2
self.move(l, t)
if __name__ == "__main__":
app = QApplication(sys.argv)
win = CenterForm()
win.show()
sys.exit(app.exec_())
1.6 效果演示
2 怎么退出应用程序?
2.1 运用按钮退出
- 咱们预期是运用一个按钮来点击后退出应用程序;
- 之前咱们运用的
Qt Designer
来实现的,主要是可视化操作; - 现在咱们运用代码来实现看看效果;
- 先添加一个按钮:
self.button = QPushButton("点击按钮")
2.2 信号与槽绑定
- 把按钮的点击操作和槽进行绑定;
- 后边会界说一个按钮点击事情;
self.button.clicked.connect(self.on_click)
2.3 布局和添加按钮
- 把设置的按钮添加到窗口中,并设置布局等操作;
lay = QHBoxLayout()
lay.addWidget(self.button)
mframe = QWidget()
mframe.setLayout(lay)
self.setCentralWidget(mframe)
2.4 界说一个按钮事情
- 界说一个按钮事情,即退出事情;
def on_click(self):
# 获取目标信号
s = self.sender()
print(s.text() " 应用程序现已退出")
app = QApplication.instance()
app.quit()
2.5 完整代码
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/2
# 文件名称:test022_QuitAPP.py
# 效果:退出应用程序
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QWidget, QPushButton
class QuitAPP(QMainWindow):
def __init__(self):
super(QuitAPP, self).__init__()
# 窗口尺寸
self.resize(500, 400)
# 窗口标题
self.setWindowTitle("验证应用程序的退出")
# 设置一个按钮
self.button = QPushButton("点击按钮")
# 信号与槽关联
self.button.clicked.connect(self.on_click)
# 水平布局
lay = QHBoxLayout()
lay.addWidget(self.button)
# 添加按钮
mframe = QWidget()
mframe.setLayout(lay)
self.setCentralWidget(mframe)
# 按钮事情
def on_click(self):
# 获取目标信号
s = self.sender()
print(s.text() " 应用程序现已退出")
app = QApplication.instance()
app.quit()
if __name__ == "__main__":
app = QApplication(sys.argv)
win = QuitAPP()
win.show()
sys.exit(app.exec_())
2.6 效果演示
- 点击按钮后输入以下信息:
D:Python37python.exe F:/pyqt_study/test_case/test022_QuitAPP.py
点击按钮 应用程序现已退出