Hi
I made a timer program. Where you write the time in some text boxes and when the clock hits that time
it should show a messagebox. But my problem is the messagebox crashes. i have no ide why.
could anyone help me?
I made a timer program. Where you write the time in some text boxes and when the clock hits that time
it should show a messagebox. But my problem is the messagebox crashes. i have no ide why.
could anyone help me?
import sys from datetime import datetime from threading import Timer from PySide2.QtUiTools import QUiLoader from PySide2.QtWidgets import QApplication, QPushButton, QLineEdit, QMessageBox from PySide2.QtCore import QFile, QObject class Form(QObject): def __init__(self, ui_file, parent=None): super(Form, self).__init__(parent) ui_file = QFile(ui_file) ui_file.open(QFile.ReadOnly) loader = QUiLoader() self.window = loader.load(ui_file) ui_file.close() self.timmar = self.window.findChild(QLineEdit, 'timmar') self.minuter = self.window.findChild(QLineEdit, 'minuter') self.sekunder = self.window.findChild(QLineEdit, 'sekunder') self.textmsg = self.window.findChild(QLineEdit, 'textmsg') btn = self.window.findChild(QPushButton, 'pushButton') btn.clicked.connect(self.ok_handler) self.window.show() def ok_handler(self): timmarValue = int(self.timmar.text()) minuterValue = int(self.minuter.text()) sekunderValue = int(self.sekunder.text()) x=datetime.today() y=x.replace(day=x.day+1, hour=timmarValue, minute=minuterValue, second=sekunderValue, microsecond=0) delta_t=y-x secs=delta_t.seconds+1 t = Timer(secs, self.hello_world) t.daemon = True t.start() def hello_world(self): textmsg = self.textmsg.text() print (textmsg) msgBox = QMessageBox() msgBox.setIcon(QMessageBox.Information) msgBox.setText("Message box pop up window") msgBox.setWindowTitle("QMessageBox Example") msgBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) returnValue = msgBox.exec() if returnValue == QMessageBox.Ok: print('OK clicked') if __name__ == '__main__': app = QApplication(sys.argv) form = Form('time2gui.ui') sys.exit(app.exec_())
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>Form</class> <widget class="QWidget" name="Form"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>272</width> <height>165</height> </rect> </property> <property name="windowTitle"> <string>Form</string> </property> <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>10</x> <y>10</y> <width>251</width> <height>141</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_8"> <item> <layout class="QVBoxLayout" name="verticalLayout_7"> <item> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLabel" name="label_3"> <property name="text"> <string>H</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLineEdit" name="timmar"> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> <item row="0" column="1"> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QLabel" name="label_4"> <property name="text"> <string>:</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLabel" name="label"> <property name="text"> <string>:</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> <item row="0" column="2"> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <widget class="QLabel" name="label_5"> <property name="text"> <string>M</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLineEdit" name="minuter"> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> <item row="0" column="3"> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> <widget class="QLabel" name="label_7"> <property name="text"> <string>:</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLabel" name="label_2"> <property name="text"> <string>:</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> <item row="0" column="4"> <layout class="QVBoxLayout" name="verticalLayout_5"> <item> <widget class="QLabel" name="label_6"> <property name="text"> <string>S</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLineEdit" name="sekunder"> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_6"> <item> <widget class="QLabel" name="label_8"> <property name="text"> <string>Text Meddelande</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> <item> <widget class="QLineEdit" name="textmsg"/> </item> </layout> </item> </layout> </item> <item> <widget class="QPushButton" name="pushButton"> <property name="text"> <string>Start</string> </property> </widget> </item> </layout> </widget> </widget> <resources/> <connections/> </ui>