用python编译一个主窗体点击登录进入另一个窗体,另一个窗体可以玩五子棋.在主窗体点击退出则退出主窗体。
时间: 2023-12-06 19:04:46 浏览: 80
这里提供一种使用PyQt5库实现的方法:
```
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot, Qt
class Login(QWidget):
def __init__(self):
super().__init__()
self.title = 'Login'
self.left = 100
self.top = 100
self.width = 300
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# 创建标签和按钮
label = QLabel('Welcome to Five in a Row Game!', self)
label.move(50, 50)
button = QPushButton('Start Game', self)
button.setToolTip('Click to start the game')
button.move(100, 100)
button.clicked.connect(self.start_game)
self.show()
@pyqtSlot()
def start_game(self):
self.game = Game()
self.game.show()
self.hide()
class Game(QWidget):
def __init__(self):
super().__init__()
self.title = 'Five in a Row Game'
self.left = 100
self.top = 100
self.width = 500
self.height = 500
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# 创建标签和按钮
label = QLabel('Welcome to Five in a Row Game!', self)
label.setAlignment(Qt.AlignCenter)
label.setGeometry(0, 0, self.width, 50)
button = QPushButton('Exit', self)
button.setToolTip('Click to exit the game')
button.move(self.width - 100, self.height - 50)
button.clicked.connect(self.close)
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
login = Login()
sys.exit(app.exec_())
```
在这个程序里,我们首先定义了两个窗体类:`Login`和`Game`。`Login`类是程序的主窗体,它包含一个欢迎标签和一个开始游戏按钮。当用户点击开始游戏按钮时,程序会隐藏`Login`窗体并显示`Game`窗体,让用户进入游戏界面。`Game`窗体包含一个欢迎标签和一个退出按钮。当用户点击退出按钮时,程序会弹出一个确认对话框,询问用户是否确定退出游戏。如果用户选择是,程序会退出;如果用户选择否,程序会返回游戏界面。
需要注意的是,为了能够处理窗口关闭事件,我们在`Game`类里重新定义了`closeEvent`方法。这样,当用户点击窗口右上角的关闭按钮时,程序会弹出确认对话框,并根据用户的选择执行相应的操作。
阅读全文