根据列表项的数量创建 Qt windows

Create Qt windows based on number of list items

首先,这是我的代码:

class Fillscreen(QtGui.QWidget, Ui_View):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent,)
        self.setupUi(self)

    def full(self):
        self.showMaximized()

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)

    monitors = selector.getMonitors()
    resolutions = selector.getResolution(monitors)
    for monitor in monitors:
        window = Fillscreen()
        window.move(monitor[0],monitor[1])
        window.full()
    app.exec_()

monitors 看起来像这样: [(-1280, 0, 0, 1024), (0, 0, 1920, 1080), (1920, 0, 3840, 1080)]

因为它只创建一个 window,这绝对有意义,因为我在每个循环中都覆盖了 window。 为了解决这个问题,我可以手动创建一个 window1window2window3

但是当我不能确定显示器的数量时我该怎么做呢?

使用QApplication::desktop():

...

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    ws = []

    for i in range(QtGui.QApplication.desktop().screenCount()):
        topLeft = QtGui.QApplication.desktop().screenGeometry(i).topLeft()
        window = Fillscreen()
        window.move(topLeft)
        window.full()
        ws.append(window)
    sys.exit(app.exec_())