欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

PyQt5:窗口的基本功能

发布时间:2024/4/14 编程问答 81 豆豆
生活随笔 收集整理的这篇文章主要介绍了 PyQt5:窗口的基本功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1、设置窗口图标

  设置窗口图标需要使用QApplication类下的setWindowIcon方法,会在窗口的左上角显示图标。setWindowIcon方法需要传入一个图像文件路径,文件格式可以使用png、jpg等。建议使用png格式,因为png格式支持透明背景。setWindowIcon方法还需要调用QIcon类。代码如下:

app = QApplication(sys.argv) ... w.setWindowTitle('串口调试程序') app.setWindowIcon(QIcon('computerIcon.png')) ...

2、显示提示框

  提示框就是一个无法获得焦点的窗口。通常用提示框作为实时帮助或提示使用。例如,当鼠标放在一个按钮上,就会显示这个按钮的作用和使用方法。提示框需要使用QWidget类的setToolTip方法创建。任何可视化控件类都有这个方法,因为可视化控件类是从QWidget类派生的。用法如下:

from PyQt5.QtWidgets import QApplication, QWidget,QToolTip
from PyQt5.QtGui import QIcon,QFont ...
QToolTip.setFont(QFont('Arial',12))
w.setToolTip('测试提示框')
...

 3、关闭窗口

  关闭窗口可以直接使用系统内置的quit方法,如果单击按钮关闭窗口,可以直接将按钮的单击事件与quit绑定。下面例子是在窗口上添加一个按钮,单击该按钮关闭窗口,同时会退出整个应用程序。

import sys import PyQt5.QtWidgets as PQW import PyQt5.QtCore as PQCif __name__ == '__main__':app = PQW.QApplication(sys.argv)w = PQW.QWidget()w.setGeometry(300,300,300,220)w.setWindowTitle('关闭窗口')qbtn = PQW.QPushButton('Quit',w)
  # 将按钮的单击事件与quit绑定。qbtn.clicked.connect(PQC.QCoreApplication.instance().quit)qbtn.resize(qbtn.sizeHint())qbtn.move(
50,50)w.show()sys.exit(app.exec_())

4、消息盒子

  消息盒子(MessageBox)其实就是各种类型的消息对话框,如信息对话框,警告对话框,询问对话框等等。这些对话框的主要区别主要是对话框的图标以及按钮个数。QMessageBox类提供了若干个静态方法可以显示各种类型的对话框,如information方法用于显示信息对话框,waring方法用于显示告警对话框,question方法用于显示询问对话框。这些方法的使用都是类似的。参考下列:

import sys import PyQt5.QtWidgets as PQW import PyQt5.QtCore as PQCclass MessageBox(PQW.QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(100,100,500,500)self.setWindowTitle('消息盒子')self.show()# 关闭窗口事件def closeEvent(self,event):# 显示询问对话框reply = PQW.QMessageBox.question(self,'消息',"你真的要退出吗?",PQW.QMessageBox.Yes | PQW.QMessageBox.No,PQW.QMessageBox.No)if reply==PQW.QMessageBox.Yes:#调用event的accept方法才会真正关闭窗口 event.accept()else:# 调用event的ignore方法取消窗口的关闭动作 event.ignore()if __name__ == '__main__':app = PQW.QApplication(sys.argv)ex = MessageBox()sys.exit(app.exec_())

运行显示效果:

  本例中,采用了面向对象的方式将与窗口相关的代码都封装在了自定义的MessageBox类中,这是编写PyQt5程序的常用方式。

  closeEvent方法是窗口的关闭事件方法,当窗口关闭时,会首先调用该方法。这个方法的调用是自动的,不需要干预,也不需要注册该方法。方法名字必须叫closeEvent。

  closeEvent方法的第二个参数是与关闭事件有关的对象。其中,accept方法会让窗口关闭,ignore方法会取消窗口关闭动作。如果这两个方法都不调用,那么窗口仍然会关闭。

 5、窗口居中

   窗口对象(QWidget)并没有直接提供让窗口居中的方法,不过可以曲线救国。根据窗口的宽度,高度,以及屏幕的宽度和高度,计算出窗口左上角的坐标,然后使用窗口对象的move()方法将窗口移动到中心的位置。计算方法如下:

  代码实现:

import sys import PyQt5.QtWidgets as PQWclass CenterWindow(PQW.QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(250,250)self.center()self.setWindowTitle('窗口居中')self.show()def center(self):desktop = app.desktop()self.move((desktop.width() - self.width())/2, (desktop.height() - self.height())/2)if __name__ == '__main__':app = PQW.QApplication(sys.argv)ex = CenterWindow()sys.exit(app.exec_())

 

转载于:https://www.cnblogs.com/chenhaiming/p/9926047.html

总结

以上是生活随笔为你收集整理的PyQt5:窗口的基本功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。