当我按下信息按钮时,我正试图打开一个消息框。它运行infoDialogue方法,因为它会打印“我在这里”,但不会打开infoBox。我错过了什么?
我正在使用python 3.5和PyQt5
谢谢!
代码如下:
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QToolTip, QPushButton, QMessageBox)
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon, QFont
class mainWindow(QWidget):
def __init__(self, screenWidth, screenHeight, windowWidth=400, windowHeight=400):
super().__init__()
self.screenWidth = screenWidth
self.screenHeight = screenHeight
self.windowWidth = windowWidth
self.windowHeight = windowHeight
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 10))
self.setToolTip('ToolTip Widget')
exitButton = QPushButton('Exit', self)
exitButton.setToolTip("<b>Wish to Exit?</b>")
exitButton.resize(exitButton.sizeHint())
exitButton.move(100, 100)
exitButton.clicked.connect(QCoreApplication.instance().quit)
infoButton = QPushButton('Info', self) # Button that calls infoDialogue()
infoButton.setToolTip('<b>ToolTip</b>')
infoButton.resize(infoButton.sizeHint())
infoButton.move(100, 200)
infoButton.clicked.connect(self.infoDialogue)
positionX = (self.screenWidth - self.windowWidth) / 2
positionY = (self.screenHeight - self.windowHeight) / 2
self.setGeometry(positionX, positionY, self.windowWidth, self.windowHeight)
self.setWindowTitle('Window Title')
#self.setWindowIcon(QIcon('./icon.png'))
self.show()
def infoDialogue(self): ## Method to open a message box
infoBox = QMessageBox() ##Message Box that doesn't run
print("Im here")
infoBox.setIcon(QMessageBox.Information)
infoBox.setText("Informações Adicionais")
infoBox.setInformativeText("Informative Text")
infoBox.setWindowTitle("Window Title")
infoBox.setDetailedText("Detailed Text")
infoBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
infoBox.setEscapeButton(QMessageBox.Close)
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Exit', "Are you sure you want to exit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
screenResolution = app.desktop().screenGeometry()
screenWidth = screenResolution.width()
screenHeight = screenResolution.height()
example = mainWindow(screenWidth, screenHeight)
sys.exit(app.exec_())
目前没有回答
相关问题 更多 >
编程相关推荐