【问题标题】:Opening new window in pyqt4在 pyqt4 中打开新窗口
【发布时间】:2019-05-12 19:32:13
【问题描述】:

我一直在尝试使用 PyQt4 创建 GUI。我真的没有太多使用 PyQt4 或 OOP 的经验。

我想要一个主窗口,它可以绘制一些图表,但也有一些按钮,可以打开新窗口。

我从多个教程中收集了这段代码:

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()

首先,我不断收到此错误: TypeError: init() 接受 1 个位置参数,但给出了 2 个

其次,有没有办法在新窗口中打印某种表格,其中会显示列表的某些元素?

【问题讨论】:

  • 您可以使用 qtablewidget 来显示表格。而不是 self.count = Window1(self),使用 self.count = Window1()

标签: python pyqt4


【解决方案1】:

显示表格:

QTableWidget

QTableWidget 类提供了一个带有默认模型的基于项目的表格视图。

表格小部件为应用程序提供标准表格显示工具。 QTableWidget 中的项目由 QTableWidgetItem 提供

对于您的错误:

TypeError: init() 接受 1 个位置参数,但给出了 2 个

代替

self.count = Window1(self)

使用:

self.count = Window1()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2019-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    相关资源
    最近更新 更多