QT使用中关于布局与信号与槽的基础问题,求高手来看看

Little柯南 2016-04-05 09:46:42
1、假如在一个QDialog中左边是一个QTreeWidget右边添加一个Qwidget空间,QWidget里面放4个QLabel,用GridLayout布局平分,现在实现双击某一个label,其余3个label隐藏,而只有一个label出现并且填充满整个Qwidget,怎么实现这个过程?
2、在一个QT的button槽函数里,实现对视频文件回放:打开文件解码(解码产生一个getImage(QImage*)信号),然后由这个信号关联label加载的槽函数,不能响应啊。
void MainWindow::on_playBackBtn_clicked()

pyBack = new playBack;
pyBack->start();
connect(pyBack,SIGNAL(readOneFrame(QImage)),this,SLOT(paly(const QImage)));
...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Little柯南 2016-04-06
  • 打赏
  • 举报
回复
引用 1 楼 jiqiang01234 的回复:
1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
谢谢了,我找到问题出在哪里了。我的槽函数什么的都没有出错,是正确的。因为保存的文件目前测试阶段定的是死的名字,每次执行都清零了remove了,所以里面没有数据,结果造成没有显示,今天多打了几个debug就看出来了。不管怎么说,谢谢了!
jiqiang01234 2016-04-05
  • 打赏
  • 举报
回复
引用 2 楼 u010111033 的回复:
[quote=引用 1 楼 jiqiang01234 的回复:] 1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
先向您道声谢,谢谢给出的回复! 1、双击doubleclick事件如何确定点击的是哪一个label?使用什么库函数判定? 2、readOneFrame是在解码函数里面emit的,在.h文件中已经做出声明。[/quote] 1、重写QWiget的virtual void mouseDoubleClickEvent(QMouseEvent * event)虚函数,实现响应双击事件 2、信号发送需要先定义,也就是需要在头文件中需要有signals关键字
Little柯南 2016-04-05
  • 打赏
  • 举报
回复
引用 1 楼 jiqiang01234 的回复:
1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
先向您道声谢,谢谢给出的回复! 1、双击doubleclick事件如何确定点击的是哪一个label?使用什么库函数判定? 2、readOneFrame是在解码函数里面emit的,在.h文件中已经做出声明。
jiqiang01234 2016-04-05
  • 打赏
  • 举报
回复
1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
Little柯南 2016-04-05
  • 打赏
  • 举报
回复
引用 3 楼 jiqiang01234 的回复:
[quote=引用 2 楼 u010111033 的回复:] [quote=引用 1 楼 jiqiang01234 的回复:] 1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
先向您道声谢,谢谢给出的回复! 1、双击doubleclick事件如何确定点击的是哪一个label?使用什么库函数判定? 2、readOneFrame是在解码函数里面emit的,在.h文件中已经做出声明。[/quote] 1、重写QWiget的virtual void mouseDoubleClickEvent(QMouseEvent * event)虚函数,实现响应双击事件 2、信号发送需要先定义,也就是需要在头文件中需要有signals关键字[/quote] 1、重新写虚函数这个知道,想问的是,如何确定区域?比如说label1的区域,label2的区域,因为在哪个区域点击,要把这个区域的部件进行图形上的放大缩小; 2、信号定义什么的都有的,并没有报错,但是写在on_playBackBtn_clicked()这个槽函数里面的connect,没有执行。我在想,写在槽函数里面的connect是否不执行?或者说有什么方法可以同步执行,避免connect的异步机制。
Little柯南 2016-04-05
  • 打赏
  • 举报
回复
引用 4 楼 u010111033 的回复:
[quote=引用 3 楼 jiqiang01234 的回复:] [quote=引用 2 楼 u010111033 的回复:] [quote=引用 1 楼 jiqiang01234 的回复:] 1、双击某个QLabel后,将响应QWidget的鼠标双击事件,对需要隐藏的QLabel调用setHidden()将其隐藏 2、readOneFrame这个信号定义了没有?
先向您道声谢,谢谢给出的回复! 1、双击doubleclick事件如何确定点击的是哪一个label?使用什么库函数判定? 2、readOneFrame是在解码函数里面emit的,在.h文件中已经做出声明。[/quote] 1、重写QWiget的virtual void mouseDoubleClickEvent(QMouseEvent * event)虚函数,实现响应双击事件 2、信号发送需要先定义,也就是需要在头文件中需要有signals关键字[/quote] 1、重新写虚函数这个知道,想问的是,如何确定区域?比如说label1的区域,label2的区域,因为在哪个区域点击,要把这个区域的部件进行图形上的放大缩小; 2、信号定义什么的都有的,并没有报错,但是写在on_playBackBtn_clicked()这个槽函数里面的connect,没有执行。我在想,写在槽函数里面的connect是否不执行?或者说有什么方法可以同步执行,避免connect的异步机制。[/quote] 这里的同步可以理解为堵塞方式处理

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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