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,QToolTipfrom 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:窗口的基本功能的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: AjaxPro怎么用
- 下一篇: 教你如何用node.js开发微信公众号(
