PyQT5之視窗

星空28發表於2024-06-07

視窗型別:
QMainWindow:可以包含選單欄、工具欄、狀態列、標題欄
QWidget:不確定視窗的用途,就使用QWidget
QDialog: 是對話視窗的基類,沒有選單欄、工具欄、狀態列

"""
視窗
QMainWindow:可以包含選單欄、工具欄、狀態列、標題欄
QWidget:不確定視窗的用途,就使用QWidget
QDialog: 是對話視窗的基類,沒有選單欄、工具欄、狀態列
"""


from PyQt5.QtWidgets import QWidget, QDesktopWidget, QMainWindow, QApplication, QPushButton, QHBoxLayout
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import QIcon
import sys
import cv2


class FirstMainWin(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 設定主視窗的標題
        self.setWindowTitle('第一個主視窗應用,並居中')
        # 設定視窗的尺寸
        self.resize(400, 300)

        self.status = self.statusBar()   # 設定狀態列
        self.status.showMessage("只存在5秒的訊息", 5000)

        self.btn1 = QPushButton("退出應用程式")
        # 將訊號與槽關聯
        self.btn1.clicked.connect(self.on_click_button)

        layout = QHBoxLayout()
        layout.addWidget(self.btn1)

        main_frame = QWidget()
        main_frame.setLayout(layout)

        self.setCentralWidget(main_frame)

    def on_click_button(self):
        sender = self.sender()
        print(sender.text() + "按鈕被按下")
        app = QApplication.instance()
        # 對出應用程式
        app.quit()

    def center(self):
        # 獲取螢幕座標系
        screen = QDesktopWidget().screenGemotry()
        # 獲取視窗座標系
        size = self.geometry()
        new_left = (screen.width() - size.width()) / 2
        new_top = (screen.height() - size.height()) / 2
        self.move(new_left, new_top)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon('./image/icon/特性.png'))
    main_win = FirstMainWin()
    main_win.show()
    sys.exit(app.exec_())

相關文章