die Situation ist folgende:
python 3.5, pyqt5
Das Signal wird emitiert, der Slot wird aufgerufen,
aber die Ausgabe in der Message Box ist:
Code: Alles auswählen
+-------------------------------------------+
| my msg_box |
+-------------------------------------------+
| |
| my strings: <class 'str'> <class 'str'> |
| |
| +------+ |
| | OK | |
| +------+ |
| |
+-------------------------------------------+
BeispielCode: (sollte laufen, wenn ich mich nicht vertippt hab. typos dürfen behalten werden)
Ich dank euch schon mal für eure Zeit und vielleicht auch einen Hinweis...
bitmastah
signal_sender.py
Code: Alles auswählen
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# author: bitmastah
# -----------------------------------------------------------------------------
from PyQt5 import QObject, pyqtSignal
from PyQt5.QtWidgets import QMessageBox
class SignalSender(QObject):
my_signal = pyqtSignal(str, str, name="my_signal")
def __init__(self):
super().__init__()
self.my_signal.emit("test1", "test2")
Code: Alles auswählen
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# author: bitmastah
# -----------------------------------------------------------------------------
import PyQt5.QtCore
import PyQt5.QtGui
import PyQt5.QtWidgets
from signal_sender import SignalSender
class MainWindow(PyQt5.QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.my_signal_sender_object = SignalSender()
self.my_signal_sender_object.my_signal.connect(self.my_slot(str, str))
@PyQt5.QtCore.pyqtSlot(str, str)
def my_slot(self, msg1, msg2):
msg_box = QMessageBox()
msg_box.setText("my strings: {} {}".format(msg1, msg2))
msg_box.exec()