Python 迭代QPushButton

Python 迭代QPushButton,python,csv,pyqt,pyqt4,qpushbutton,Python,Csv,Pyqt,Pyqt4,Qpushbutton,我正在使用PyQt4。我有一个QPushButton,现在我想迭代它。单击按钮时,它应该将csv文件中的数据加载到QTableWidget中。但我一次只想展示一个箱子 例如,csv有1000行,不包括标题。现在,它应该将标题从标题分配给表小部件。并仅在其下方显示一行。所以,单击,它应该显示同一行中的下一行信息。我在下面发布了一些语法略有不同的代码。我为标题显示了db的语法,我还想排除它 我添加了.ui文件。您可以将其直接保存为。ui: 评论 0 0 1073 862 主窗口 60 360 13

我正在使用PyQt4。我有一个QPushButton,现在我想迭代它。单击按钮时,它应该将csv文件中的数据加载到QTableWidget中。但我一次只想展示一个箱子

例如,csv有1000行,不包括标题。现在,它应该将标题从标题分配给表小部件。并仅在其下方显示一行。所以,单击,它应该显示同一行中的下一行信息。我在下面发布了一些语法略有不同的代码。我为标题显示了db的语法,我还想排除它

我添加了.ui文件。您可以将其直接保存为。ui:


评论
0
0
1073
862
主窗口
60
360
131
27
60
410
131
27
60
460
131
27
60
540
113
27
60
590
113
27
330
360
113
27
330
410
121
78
330
510
121
78
20
10
991
311
350
670
99
41
12
50
假的
提交
0
0
1073
25
从PyQt4导入QtCore、QtGui、uic
从PyQt4.QtCore导入QString
从PyQt4.QtGui导入*
从PyQt4.QtCore导入*
导入MySQLdb
导入操作系统
导入时间
导入系统
导入csv
###正在加载.UI文件###
rts_class=uic.loadUiType(“main.ui”)[0]
类主窗口(QtGui.QMainWindow,rts_类):
def uuu init uuu(self,parent=None):
QtGui.QMainWindow.\uuuuu init\uuuuu(self,parent)
self.setupUi(self)
#self.review.clicked.connect(self,review\u应用程序)
self.submit.clicked.connect(self.submit\u应用程序)
#self.quit.clicked.connect(self,quit\u应用程序
self.load_db()
self.checkbox()
def加载_db(自身):
self.dadis.setRowCount(1)
self.dadis.setColumnCount(标题)
self.dadis.setHorizontalHeaderLabels(QString(“%s%”,“.join(map(str,mainheader))).split(“,”)
如果os.path.isfile(“RTS.csv”)为真:
打开('RTS.csv','r')作为fo:
reader=csv.reader(fo,分隔符=',')
ncol=len(下一个(读卡器))
数据=列表(读卡器)
行计数=len(数据)
打印行数
main=数据[0]
打印总管
对于范围内的var(0,ncol):
self.dadis.setItem(0,var,QTableWidgetItem(main[var]))
fo.close()
def复选框(自我):
自组装附加项(“”)
自我补充补充(“完成”)
自我补偿补充项(“不完整”)
self.loccb.addItem(“”)
self.loccb.addItem(“可定位”)
self.loccb.addItem(“不可卸载”)
self.rescb.addItem(“”)
自修复附加项(“房屋”)
自修复附加项(“街道”)
自我重新分类附加项(“殖民地”)
自我修复补充(“社会”)
def提交申请(自我):
compout=self.compcb.currentText()
locout=self.loccb.currentText()
resourct=self.rescb.currentText()
LATXT=self.lat.text()
lontxt=self.lon.text()
landtxt=self.landmark.text()
suggestxt=self.sugges.toPlainText()
remarktxt=self.rements.toPlainText()
打印组件
打印输出
印刷资源
打印文本
打印lontxt
打印landtxt
打印建议文本
打印标记文本
如果os.path.isfile(“rts_output.csv”)为False:
打开('rts_output.csv','a')作为fp:
b=csv.writer(fp,分隔符=',')
标题=[[“完整性”、“可定位”、“分辨率”、“地理位置”、“地理位置”、“地标”、“建议”、“备注”]]
b、 writerows(标题)
如果os.path.isfile(“rts_output.csv”)为真:
打开('rts_output.csv','a')作为fp:
a=csv.writer(fp,分隔符=',')
数据=[[compout、locout、Resource、lattxt、lontxt、landtxt、suggestxt、remarkstxt]]
a、 writerows(数据)
如果os.path.isfile(“RTS.csv”)为真:
打开('RTS.csv','r')作为fo:
reader=csv.reader(fo,分隔符=',')
ncol=len(下一个(读卡器))
数据=列表(读卡器)
行计数=len(数据)
x=数据[0][0]
打印x
i=int(x)+1
打印i

如果我主要的问题是,每次单击按钮时,迭代器都会被设置为0或1,无论它被分配了什么。因此,在类之外分配变量,并将其调用到类中以维护循环结构

class staticVariable:
    static_count_clicked = 1

class Mainwindow(QtGui.QMainWindow, rts_class):
    def __init__(self, parent=None, *args, **kwargs):
        QtGui.QMainWindow.__init__(self, parent)
        self.setupUi(self)

        self.submit.clicked.connect(self.submit_application)

    def submit_application(self, count_clicked):

        staticVariable.static_count_clicked += 1
        print staticVariable.static_count_clicked

请发布main.ui,这样我们就可以运行它了(看起来只需要一些小的编辑就可以使它独立于mysql)。将添加main.ui,但重点是如何迭代该按钮?当我单击时,新的案例应该出现,因为我只想显示完整csv行中的一行,单击时应更改为下一行:P@Schollii添加了main.ui,并且…使其独立于mysql不是主要的…而是对其进行迭代以在表widge中显示单个列t并单击“仅将一行加载到同一行”位置:PI意识到这不是问题的重点,但我需要运行它我需要ui文件我将处理resti添加的ui文件