求助QListWidget点击item弹出对应页面

ALyingman 2017-08-04 11:30:56

如上图所示,左边为一级菜单的item,右边为二级菜单的item。
目前点击左边对应的item1/2/3时候
右边Page1/2/3能正确显示,但是点击右边的item1_1并不能正常弹出对应窗口。
下面是SLOT(jumpto())
void MyPage1::jumpto()
{
paywidget *p = new paywidget;
p->show();
}
使用 connect(listTable,SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(jumpto()));时,
点击任何item1_x均能弹出p页面。
但使用 connect(listTable,SIGNAL(currentItemChanged(item1_1*,QListWidgetItem*)),this,SLOT(jumpto()));时,
以及connect(listTable,SIGNAL(currentItemChanged(QListWidgetItem*,item1_1*)),this,SLOT(jumpto()));时,
任何点击都没有反应。
小白求一种能正确点击不同item1_*弹出对应页面的方法,谢谢。
刚刚入门QT5,网上能找的currentItemChanged资料实在有限,第一次发帖求助,望指导,谢谢
...全文
1393 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ALyingman 2017-08-08
  • 打赏
  • 举报
回复
有人吗有人吗!!!!!
ALyingman 2017-08-07
  • 打赏
  • 举报
回复
引用 2 楼 qqwangfan 的回复:
currentItemChanged(QListWidgetItem*,QListWidgetItem*) 信号里面的参数必须是类型,而且没有参数名,你其他2个不能正确调用槽是因为信号里的参数传的不是具体类型,而是有参数名。
小生愚昧,具体类型指的是什么意思,其具体类型不就是widgetlist的item吗?,item1_1是我定义的变量名,您能给我个例子怎么使用currentItemChanged,或者说我这个怎么改吗?
ALyingman 2017-08-07
  • 打赏
  • 举报
回复
引用 5 楼 qqwangfan 的回复:
要改的话,就用你上面第一次connect那个是对的,即: connect(listTable,SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(jumpto())); connect时信号和槽的参数必须都只能是类型,不能有变量名。你要发具体的某个变量的话,在发送信号里面传过去就是了。 QListWidgetItem *item1 ,item2; 如 emit currentItemChanged(item1 ,item2); 这样就可以把你想传过去的参数通过信号发送过去。
用了您的方法还是无法实现点击对应item实现不同的窗口弹出,emit currentItemChanged(item1_1,item1_2); 这一语句是要放在哪个位置。
  • 打赏
  • 举报
回复
要改的话,就用你上面第一次connect那个是对的,即: connect(listTable,SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(jumpto())); connect时信号和槽的参数必须都只能是类型,不能有变量名。你要发具体的某个变量的话,在发送信号里面传过去就是了。 QListWidgetItem *item1 ,item2; 如 emit currentItemChanged(item1 ,item2); 这样就可以把你想传过去的参数通过信号发送过去。
  • 打赏
  • 举报
回复
引用 3 楼 ALyingman 的回复:
[quote=引用 2 楼 qqwangfan 的回复:] currentItemChanged(QListWidgetItem*,QListWidgetItem*) 信号里面的参数必须是类型,而且没有参数名,你其他2个不能正确调用槽是因为信号里的参数传的不是具体类型,而是有参数名。
小生愚昧,具体类型指的是什么意思,其具体类型不就是widgetlist的item吗?,item1_1是我定义的变量名,您能给我个例子怎么使用currentItemChanged,或者说我这个怎么改吗?[/quote] 就是说,你的信号里面必须不能有定义的变量名。信号参数只能有类型,不能有变量名。
  • 打赏
  • 举报
回复
currentItemChanged(QListWidgetItem*,QListWidgetItem*) 信号里面的参数必须是类型,而且没有参数名,你其他2个不能正确调用槽是因为信号里的参数传的不是具体类型,而是有参数名。
ALyingman 2017-08-04
  • 打赏
  • 举报
回复
真心求助,求指导

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧