我希望在我正在编写的Haskell程序中使用itemDoubleClicked(QTreeWidgetItem*,int)
信号,该程序使用qtHaskell作为GUI。要连接函数,我在其他地方完成了以下操作:
dummyWidget <- myQWidget
connectSlot object signal dummyWidget "customSlot()" $ f
其中object
是一个QWidget
对象,signal
是一个表示信号的字符串,例如"triggered()"
,f
是当信号发送时我想要被调用的函数。
在API中,connectSlot
的定义如下:
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
和由信号发送的整数。是否有一种方法将该信号连接到自定义函数?