本文共 2675 字,大约阅读时间需要 8 分钟。
在PyQt5中,QMainWindow和QDialog是两种常见的窗口类。QMainWindow主要用于创建主窗口,通常具有菜单栏、工具栏和状态栏等功能,而QDialog则用于创建对话框,通常不包含这些功能。QDialog适用于需要与用户进行短期互动的场景。
创建QMainWindow时,需要注意以下几点:
以下是一个创建主窗口的示例代码:
import sysfrom PyQt5.QtWidgets import (QMainWindow, QApplication, QDesktopWidget, QPushButton)class MainWindow(QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.resize(200, 300) self.status = self.statusBar() self.setWindowTitle('窗体标题!') self.status.showMessage("状态栏", 5000) self.center() def center(self): deskSize = QDesktopWidget().screenGeometry() windowSize = self.geometry() self.move((deskSize.width() - windowSize.width()) / 2, (deskSize.height() - windowSize.height()) / 2)if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) 为了实现点击按钮关闭窗口的功能,可以使用信号和槽的方式进行关联。以下是一个实现关闭窗口的示例代码:
import sysfrom PyQt5.QtWidgets import (QMainWindow, QApplication, QPushButton, QHBoxLayout, QWidget)class MainWindow(QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.resize(200, 300) self.setWindowTitle("关闭窗口") self.center() self.btn = QPushButton("关闭") self.btn.clicked.connect(self.onBtnClickCloseWin) layout = QHBoxLayout() layout.addWidget(self.btn) widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) def center(self): deskSize = QDesktopWidget().screenGeometry() windowSize = self.geometry() self.move((deskSize.width() - windowSize.width()) / 2, (deskSize.height() - windowSize.height()) / 2) def onBtnClickCloseWin(self): sender = self.sender() appInstance = QApplication.instance() appInstance.quit()if __name__ == "__main__": app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) 通过以上知识,可以更好地理解并使用PyQt5进行窗口开发。如果需要进一步学习,可以参考PyQt5的官方文档或相关学习资料。
转载地址:http://pdafk.baihongyu.com/