0
gedrückt wird Die Schaltfläche im folgenden Skript soll nach dem Drücken einer Nachricht eine Nachricht öffnen. Aber bevor die Schaltfläche gedrückt wird, öffnet das Skript bereits zwei Meldungsfelder.PyQT Skript zweimal ausführen, bevor Taste
Ich habe versucht, dies mit dem Selbst-Argument zu beheben, aber das Skript öffnet entweder zwei oder keine Boxen. Jede Hilfe würde sehr geschätzt werden.
import sys
import subprocess
from PyQt4 import QtCore, QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.win_widget = WinWidget(self)
widget = QtGui.QWidget()
layout = QtGui.QVBoxLayout(widget)
layout.addWidget(self.win_widget)
self.setCentralWidget(widget)
self.statusBar().showMessage('Ready')
self.setGeometry(300, 300, 450, 250)
self.setWindowTitle('Test')
self.setWindowIcon (QtGui.QIcon('logo.png'))
self.show()
self.win_widget = WinWidget (self)
class WinWidget (QtGui.QWidget) :
def __init__(self, parent):
super (WinWidget , self).__init__(parent)
self.controls()
self.grid_layout()
self.showDialog()
def controls(self):
self.btn_file = QtGui.QPushButton('Choose Path ', self)
self.btn_file.setFont(QtGui.QFont('CourierNew', 12 , QtGui.QFont.Bold,False))
self.btn_file.clicked.connect(self.showDialog)
self.le_path = QtGui.QLineEdit("Python" ,self)
self.le_path.setFont(QtGui.QFont('CourierNew' , 11))
def grid_layout (self) :
grid = QtGui.QGridLayout()
grid.setSpacing(2)
grid.addWidget(self.btn_file , 1 , 0)
grid.addWidget(self.le_path , 1, 1)
self.setLayout(grid)
# THE PART BELOW IS THE ONE THAT OPENS THE TWO BOXES BEFORE BUTTON IS PRESSED ...
def showDialog (self) :
self.msg = QtGui.QMessageBox(self)
self.msg.setText("This is a message box")
self.msg.setInformativeText("This is additional information")
self.msg.setWindowTitle("MessageBox demo")
self.msg.setDetailedText("The details are as follows:")
self.msg.show()
def main():
app = QtGui.QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Sie rufen 'showDialog' in Ihrem Konstruktor –
Vielen Dank, das perfekt funktioniert gut. Niemals hätte ich das selbst herausgefunden ... sehr appreciated. – rainer