PyQt:QWidget幻灯片图像在QMainWindow中无法正确显示

时间:2017-04-21 17:04:16

标签: python pyqt slideshow qwidget qmainwindow

我创建了两个类 - QMainWindow,它是从QtDesigner和QWidget幻灯片生成的,仅在执行时才能完美运行。我设法合并MainWindow类中的小部件,并且当我单击幻灯片按钮时它执行正常但是图像没有显示并给出此错误:

clicks

这可能是一个小错误,但我仍然是PyQt的新手,而且我已经尝试了将近一天摆弄它现在大声笑。任何帮助将一如既往地受到赞赏!

以下是完整代码:

for (var i = 0; i < this.data.length; i++) {
            var item = this.data[i];
            this.svg.append("rect")
                .attr("class", "interval")
                .attr("y", offset + item['start'] * max_height / 86400)
                .attr("x", horz_inset)
                .attr("height", item['length'] * max_height / 86400)
                .attr("width", width - 2 * horz_inset)
                .on("click", function () {
                   this.events.publish('intervals', this.data);
                });
        }

1 个答案:

答案 0 :(得分:3)

问题在于您在Slides

中创建MainWindow.__init__个实例的行
self.slides_widget = Slides(self)

您在self变量而不是MainWindow的位置传递image_files(在parent的实例中读取)。查看您的Slides.__init__

class Slides(QtGui.QWidget):
    def __init__(self, image_files, parent=None):

parent变量具有默认值None,因此在实例创建期间不会触发任何错误。但是,当您尝试将TypeError视为列表时,您会收到image_files(请记住您已放置image_files=selfMainWindow实例))。

只需使用:

self.slides_widget = Slides(image_files, self)

取而代之的是MainWindow.__init__

祝你好运:)