从另一个pyq类修改列表框

2024-09-30 20:19:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过PyQt和Python为数据库做一个GUI。主窗口(类窗口)有一个列表框,我在其中输入所有数据,在本例中,我输入“程序正在工作”。此外,另一个窗口(类AddWin)帮助我向数据库添加新的客户,但我无法从类AddWin修改列表框。我在我的程序中有以下代码,我想清除类AddWin的列表框,你能帮我吗?或者我在下面的代码中犯了什么错误?在

class Window(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        #Listbox 
        self.lista = QtGui.QListWidget(self)
        self.lista.move(155,221)
        self.lista.resize(855,455)
        self.lista.addItem("The program is working")

class AddWin(QtGui.QDialog):
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        main = Window()
        main.lista.clear()

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

Tags: 代码self程序数据库initmainsyswindow
1条回答
网友
1楼 · 发布于 2024-09-30 20:19:03

你的错误是代码没有在任何地方实例化AddWin,所以lista.清除从不打电话。在

你可以通过改变

window = Window()

^{pr2}$

上次编辑日期:2014年8月21日12:42

如果要将QtGui.QListWidgetQtGui.QMainWindow切分到{},可以通过引用QtGui.QDialog来使用传递值。在

假设您的QtGui.QMainWindow必须有QtGui.QDialog(或AddWin

class Window(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        #Listbox 
        self.lista = QtGui.QListWidget(self)
        self.lista.move(155,221)
        self.lista.resize(855,455)
        self.lista.addItem("The program is working")
        self.myAddWin = AddWin(self.lista, self) # <- Pass QListWidget to your class

class AddWin(QtGui.QDialog):
    def __init__(self, refQListWidget, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.myRefQListWidget = refQListWidget
        self.myRefQListWidget.clear()

相关问题 更多 >