bas*_*ibe 0 c++ user-interface qt
我在Qt中编写了一个向导式应用程序,它使用QStackedWidget来组织向导的各个页面.现在我想在页面之间切换,这应该是可以使用的功能setCurrentWidget(...):
我有一个简单的主类来实例化QWidget audioconfig.然后,它将此QWidget添加到QStackedWidget pageStack使用pageStack.addWidget(&audioconfig);.
后来,我想将来自不同QWidget的特定信号连接hub到setCurrentWidget(...)QStackedWidget,以便切换页面.但是,我的编译器评论说
0Object :: connect:/Users/paperflyer/Development/App/main.cpp中没有这样的插槽QStackedWidget :: setCurrentWidget(audioconfig):41`
我有两件事没有到达:
这是整个代码:
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QStackedWidget pageStack;
CHub hub; // inherits from CWidget
CAudioConfig audioconfig; // ditto
pageStack.addWidget(&hub);
pageStack.addWidget(&audioconfig);
// connect() is a custom signal of hub
QObject::connect(&hub, SIGNAL(configure()), &pageStack, SLOT(setCurrentWidget(&audioconfig)));
pageStack.setGeometry(100,100,700,500);
pageStack.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
一如既往,非常感谢你的帮助!
QObject :: connect(&hub,SIGNAL(configure()),&pageStack,SLOT(setCurrentWidget(&audioconfig)));
将信号连接到信号/插槽时,连接签名.发射信号时传递实际参数.上面应该是setCurrentWidget(QWidget*),但即便这样也行不通,因为信号的签名必须与插槽的签名相匹配.
注意:我认为如果信号的参数多于插槽,它仍然可以工作,前提是第一个参数相同.
| 归档时间: |
|
| 查看次数: |
1308 次 |
| 最近记录: |