我无法正确执行我正在编写的程序。我想在一个单独的类中建立一个表。类中的方法似乎需要返回,以便表显示,我正在试图找出原因。如果我使用“return”或“returnnone”,当我运行程序时,表将不会显示。但是,如果我使用一个无意义的引用,比如“return junk”,它编译时会出现一个错误,即引用没有定义,但是当我运行程序时,表会出现。有人能帮我们吗?你知道吗
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
class MyMainWindow(QMainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.table_widget = TableWidget(self)
self.setCentralWidget(self.table_widget)
class TableWidget(QWidget):
def __init__(self, parent):
super(TableWidget, self).__init__(parent)
table = QTableWidget()
tableItem = QTableWidgetItem()
# initiate table
table.setWindowTitle("test_table")
table.resize(400, 250)
table.setRowCount(4)
table.setColumnCount(2)
# set data
table.setItem(0,0, QTableWidgetItem("Item (1,1)"))
table.setItem(0,1, QTableWidgetItem("Item (1,2)"))
table.setItem(1,0, QTableWidgetItem("Item (2,1)"))
table.setItem(1,1, QTableWidgetItem("Item (2,2)"))
table.setItem(2,0, QTableWidgetItem("Item (3,1)"))
table.setItem(2,1, QTableWidgetItem("Item (3,2)"))
table.setItem(3,0, QTableWidgetItem("Item (4,1)"))
table.setItem(3,1, QTableWidgetItem("Item (4,2)"))
table.setItem(3,0, QTableWidgetItem("Item (4,1)"))
table.setItem(3,1, QTableWidgetItem("Item (4,2)"))
# show table
table.show()
return junk
def main():
app = QApplication(sys.argv)
GUI = MyMainWindow()
GUI.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
您没有保留对表的引用,因此当
__init__
返回时,它会被垃圾回收。可以通过将表放入布局来解决此问题,如下所示:相关问题 更多 >
编程相关推荐