Открытие нового окна в pyqt4 - PullRequest
1 голос
/ 12 мая 2019

Я пытался создать графический интерфейс с использованием PyQt4. У меня нет особого опыта использования PyQt4 или ООП.

Мне бы хотелось иметь главное окно, в котором можно было бы строить некоторые графики, а также кнопки, которые открывали бы новые окна.

Из нескольких уроков я собрал этот код:

from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure



class Window1(QtGui.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()




class Window(QtGui.QDialog):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 800, 600)
        self.setWindowTitle("App")


        self.figure = Figure()
        self.button = QtGui.QPushButton('Plot')
        self.button.clicked.connect(self.plot)
        self.button1 = QtGui.QPushButton('Count')
        self.button1.clicked.connect(self.show_count)
        self.count = Window1(self)
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.toolbar)
        layout.addWidget(self.canvas)
        layout.addWidget(self.button)
        layout.addWidget(self.button1)

    def plot(self): #some random stuff for now
        list1 = [3,4,5,6,9,12]
        list2 = [8,12,14,15,17,20]



        ax = self.figure.add_subplot(111)


        ax.clear()


        ax.plot(list1, list2)

        self.canvas.draw()  

    def show_count(self):
        self.count.show()

Прежде всего, я продолжаю получать эту ошибку: Ошибка типа: init () принимает 1 позиционный аргумент, но 2 были даны

Во-вторых, есть ли способ напечатать какую-нибудь таблицу в новом окне, где будут отображаться некоторые элементы списка?

1 Ответ

0 голосов
/ 13 мая 2019

, чтобы показать таблицу:

QTableWidget

Класс QTableWidget предоставляет табличное представление на основе элементов с моделью по умолчанию.

Виджеты таблиц предоставляют стандартные средства отображения таблиц для приложений. Элементы в QTableWidget предоставляются QTableWidgetItem

За вашу ошибку:

TypeError: init () принимает 1 позиционный аргумент, но 2 даны

Вместо

self.count = Window1(self)

использование:

self.count = Window1()
...