視窗型別:
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_())