Goz*_*Goz 2 c++ qt signals-slots
嗨,我有一个空闲的时刻,所以决定看看Qt,我可以轻松地将我的Windows应用程序移植到Qt.
我唯一真正的问题是需要在Qt下重新实现的几个控件.我已经处理了控件的基本绘图,但是我的控件创建了一个子滚动条.问题是这个滚动条是作为我的新Widget的一部分动态创建的(即m_Scrollbar是小部件的成员).然后我该如何响应滚动条的移动.在其他情况下,这很容易,因为我只是on_myscrollbar_sliderMoved在我的下面创建一个函数protected slots并在那里处理它.然而,这确实依赖于QScrollBar被召唤myscrollbar.因为我已经动态创建了对象(即不通过设计器),我该如何捕获这个信号?
我猜这很简单,我错过了明显的:)
connect( myScrollbar, SIGNAL( <signal signature>), this, SLOT( <slot signature>));
Run Code Online (Sandbox Code Playgroud)
创建滚动条后调用connect(我假设您在创建滚动条后立即需要此信号处理).
我假设myScrollbar的类型为QScrollBar*,并且插槽被定义为类中的成员.
销毁myScrollbar时,将删除连接(调用disconnect).
请参阅QObject :: connect和QObject :: disconnect方法的文档.
稍后编辑 - 更具体,在您的代码中它可能是:
myScrollbar = new QScrollBar; // Create the scroll bar
// ... add it to the layout, etc.
// ... and connect the signal to your slot
connect( myScrollbar, SIGNAL( sliderMoved( int)), this, SLOT( handleSliderMoved( int)));
Run Code Online (Sandbox Code Playgroud)
其中handleSliderMoved是您的类的slot方法.
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |