在 Win 7 上使用 5.0.2
我有 2 个“ImageLoop”类 [扩展 QWidget],每个类占据屏幕的一半,垂直分割。每个都包含一个用于显示 jpg 文件列表的 QLabel。因此,在 for 循环中,我为每个小部件提供图像列表,并发出一个“listfull”信号,该信号已连接到两个小部件中的每一个中的插槽 - “playList”。不幸的是,似乎只有第一个小部件的信号被发出,因为只有第一个小部件被更新。
我是 Qt 编程的新手,也许我误解了插槽/信号系统。我认为下面的伪代码会为每个实例填充列表,发出信号,并且每个实例都会以它们愉快的方式运行——基本上每个小部件同时且独立地显示图像。所以,问题是我错过了什么?还是我必须在自己的线程中生成每个?
谢谢!
伪代码
for(int i=0; i<2; i++){
Create ImageLoop instance
connect(instance, SIGNAL(listfull()), instance, SLOT(playList()));
instance->FillList(arrayOfImageFileNames);
}
//inside of ImageLoop class
void FillList(arrayOfImageFileNames) {
//adds all files to an internal list
//when finished
emit listfull();
}
//inside of ImageLoop class
void playList() {
//code to loop through each image and show it
}