Я хочу использовать сигнал itemDoubleClicked(QTreeWidgetItem*,int)
в программе Haskell , которую я пишу, где я использую qtHaskell для GUI. Для подключения функции у меня в других местах сделано следующее:
dummyWidget <- myQWidget
connectSlot object signal dummyWidget "customSlot()" $ f
Где object
- это некоторое QWidget
, а signal
- строка, представляющая сигнал, например, "triggered()"
и f
- это функция, которую я хочу вызывать при отправке сигнала.
Определение connectSlot
в API:
class Qcs x where
connectSlot :: QObject a -> String -> QObject b -> String -> x -> IO ()
где экземпляры Qcs
:
Qcs ()
Qcs (QObject c -> String -> IO ())
Qcs (QObject c -> Object d -> IO ())
Qcs (QObject c -> Bool -> IO ())
Qcs (QObject c -> Int -> IO ())
Qcs (QObject c -> IO ())
Qcs (QObject c -> OpenGLVersionFlag -> IO ())
Предполагается, что первым пройденным аргументом будет QObject
, о котором я использую сигнал. Как видите, не существует экземпляра, в котором f
, функция для подключения к сигналу, может иметь два дополнительных аргумента для получения QWidget
и целочисленного значения, отправляемого сигналом. Есть ли способ подключить этот сигнал к пользовательской функции?