PyQt4如何单击菜单生成table

飘飘徐 发布于 2012/07/17 16:17
阅读 1K+
收藏 1

我通过PyQt4生成了一个窗口,窗口上的菜单栏为“分级表”,请问要怎么写python,才能在单击“分级表”后在窗口里出现一个相应的table。

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))

class MainWindow(QMainWindow):
    def __init__(self,parent=None):
        super(MainWindow,self).__init__(parent)
        self.resize(500,300)
        self.setWindowTitle(self.tr("表窗口"))
        self.table=QTableWidget()

        self.createActions()
        self.createMenus()  

    def createActions(self):
        self.gradeAction = QAction(self.tr("分级表"),self)
        self.gradeAction.setShortcut("Ctrl+G")
        self.gradeAction.setStatusTip(self.tr("模块分级表"))       
        self.connect(self.gradeAction,SIGNAL("triggered()"),self.grade)

    def createMenus(self):
        profileMenu = self.menuBar().addMenu(self.tr("模块表(&T)"))
        profileMenu.addAction(self.gradeAction)

    def grade(self):
        self.table.setColumnCount(2)                
        self.table.setRowCount(40) 
        self.table.setItem(0,0,self.tr("ben"))
        self.table.setItem(0,1,self.tr("ton" ))
        self.table.setItem(0,2,self.tr("cap"))

app=QApplication(sys.argv)
main=MainWindow()
main.show()
app.exec_()

错误提示: 
Traceback (most recent call last):
  File "D:\Python\Menu\self\1.py", line 29, in grade
  self.table.setItem(0,0,self.tr("ben"))
TypeError: QTableWidget.setItem(int, int, QTableWidgetItem): argument 3 has unexpected type 'QString'

加载中
0
lython
lython
    def grade(self):
        self.table.setColumnCount(2)
        self.table.setRowCount(40)
        self.table.setItem(0,0,QTableWidgetItem("ben"))
        self.table.setItem(0,1,QTableWidgetItem("ton"))
        self.table.setItem(0,2,QTableWidgetItem("cap"))
        self.setCentralWidget(self.table)
0
李爹
李爹
方法的第三个参数类型不对,应该是 QTableWidgetItem.
0
電泡泡
電泡泡
請問你的pyqt4是怎麼安裝的?我就是沒有安裝成功
返回顶部
顶部