definit_slot(self): """ bind function to slot :return: """ self.ui.PPIPlotButton.clicked.connect(self.show_ppi) # 注意!这里是传入函数名,而非执行函数 self.ui.RHIPlotButton.clicked.connect(self.show_rhi) self.ui.exit_button.clicked.connect(self.close) # 绑定关闭按钮功能
defshow_ppi(self): """ create ppi window and show it :return: """ # 这里会关闭已经初始化过的窗口,并创建新的窗口,以达到只显示一个窗口的目的 # 但是需要注意,这样做会丢失所有在旧窗口上做过的更改 if self.ppi_window isnotNone: self.ppi_window.deleteLater() self.ppi_window = PPIWindow() self.ppi_window.show()
defshow_rhi(self): """ create rhi window and show it :return: """ if self.rhi_window isnotNone: self.rhi_window.deleteLater() self.rhi_window = RHIWindow() self.rhi_window.show() if __name__ == "__main__": import sys from PyQt5.QtWidgets import QApplication app = QApplication([]) widget = MainWindow() widget.show() sys.exit(app.exec())
from PyQt5.QtWidgets import QMainWindow, QShortcut, QMessageBox from PyQt5.QtGui import QKeySequence from form import Ui_MainWindow
from src.ppi.ppi import PPIWindow # 引入部件 from src.rhi.rhi import RHIWindow
defclose_confirm_box(parent): """ return True if Yes or False if No. be careful! close window will lose all results :return: """ # QMessageBox.Yes | QMessageBox.No 的意思是添加两个按钮:是 和 否 # 第五个参数指定了默认的按钮是哪一个,这里设置默认为 否 res = QMessageBox.question(parent, '关闭窗口', '关闭窗口会导致所有结果丢失,确认关闭?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if res == QMessageBox.Yes: returnTrue else: returnFalse
definit_slot(self): """ bind function to slot :return: """ self.ui.PPIPlotButton.clicked.connect(self.show_ppi) # 注意!这里是传入函数名,而非执行函数 self.ui.RHIPlotButton.clicked.connect(self.show_rhi) self.ui.exit_button.clicked.connect(self.close) # 绑定关闭按钮功能
defshow_ppi(self): """ create ppi window and show it :return: """ if self.ppi_window isnotNone: self.ppi_window.deleteLater() self.ppi_window = PPIWindow() self.ppi_window.show()
defshow_rhi(self): """ create rhi window and show it :return: """ if self.rhi_window isnotNone: self.rhi_window.deleteLater() self.rhi_window = RHIWindow() self.rhi_window.show() defbind_short_cut(self): """ bing shortcut to app :return: """ self.close_short_cut = QShortcut(QKeySequence('Ctrl+Q'), self) self.close_short_cut.activated.connect(self.close) defcloseEvent(self, QCloseEvent): # 重写 closeEvent 函数 if close_confirm_box(self): QCloseEvent.accept() else: QCloseEvent.ignore()
if __name__ == "__main__": import sys from PyQt5.QtWidgets import QApplication
Comments