Can't fill some cells of tablewidget. PyQt5Why can't Python parse this JSON data?UnicodeEncodeError: 'ascii' codec can't encode character u'xa0' in position 20: ordinal not in range(128)Python QT - Refresh all widgetsModify cells in QTableView PYQT5pyqt5 tablewidgets retrieving dataload data into tableWidget PyQt5multiple gui python qt and switch between thempyqt5: Reading and Writing to CSV with tableWidgetDynamically add rows and columns in QTable in pyQT5
Hotel booking: Why is Agoda much cheaper than booking.com?
Vehemently against code formatting
Why won't the U.S. be a signatory nation of The United Nations Convention on the Law of the Sea?
On a piano, are the effects of holding notes and the sustain pedal the same for a single chord?
Chain rule instead of product rule
Can a Warforged have a ranged weapon affixed to them like an armblade?
How could the B-29 bomber back up under its own power?
Parse a C++14 integer literal
Was murdering a slave illegal in American slavery, and if so, what punishments were given for it?
Why does snapping your fingers activate the Infinity Gauntlet?
Why is so much ransomware breakable?
Why is Drogon so much better in battle than Rhaegal and Viserion?
Bash Read: Reading comma separated list, last element is missed
Better than Rembrandt
Why should one apply for UK visa before other visas, on a multi-destination European holiday?
Why did Nick Fury not hesitate in blowing up the plane he thought was carrying a nuke?
Gambler's Fallacy Dice
What city and town structures are important in a low fantasy medieval world?
How to plot a surface from a system of equations?
How can sister protect herself from impulse purchases with a credit card?
Addressing an email
How to fix "webpack Dev Server Invalid Options" in Vuejs
How can I prevent Bash expansion from passing files starting with "-" as argument?
Cycling to work - 30mile return
Can't fill some cells of tablewidget. PyQt5
Why can't Python parse this JSON data?UnicodeEncodeError: 'ascii' codec can't encode character u'xa0' in position 20: ordinal not in range(128)Python QT - Refresh all widgetsModify cells in QTableView PYQT5pyqt5 tablewidgets retrieving dataload data into tableWidget PyQt5multiple gui python qt and switch between thempyqt5: Reading and Writing to CSV with tableWidgetDynamically add rows and columns in QTable in pyQT5
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm programming a simple csv handler that will just look at two columns using python 3.7.2 and pyqt5. It will have a desired number of rows and all of them needs to be filled for my program to work. But when I run my loops only 11 out of 20 cells get filled. When I decrease the row count to 10 this ratio is 6/10 and for 6 this is 4/6. I can't find why this occurs.
Here is the loop that sets the headers firstly.
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
This is the loop that fills the first column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
And this is the loop that fills the second column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
For other details that you may need when you are solving my problems here is the whole code. (I have no file sharing platforms available right now. Please accept my apologies for sharing the whole code in text.)
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'database.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
import os
from pandas import DataFrame, read_csv
import pandas as pd
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
total_rows = 20
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(551, 602)
#Layout
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMaximumSize(QtCore.QSize(16777215, 70))
self.widget.setStyleSheet("background-color: black;")
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.widget)
self.label.setStyleSheet("color: white;nfont-size: 36px;")
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
spacerItem = QtWidgets.QSpacerItem(337, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(self.centralwidget)
self.widget_2.setStyleSheet("background-color: #777;")
self.widget_2.setObjectName("widget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.widget_3 = QtWidgets.QWidget(self.widget_2)
self.widget_3.setStyleSheet("background-color: #556;")
self.widget_3.setObjectName("widget_3")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_3)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.widget_5 = QtWidgets.QWidget(self.widget_3)
self.widget_5.setStyleSheet("background-color:white;")
self.widget_5.setObjectName("widget_5")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_5)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
#TableWidget
self.tableWidget = QtWidgets.QTableWidget(self.widget_5)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setStyleSheet("background-color: #eee;")
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(total_rows)
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.horizontalLayout_2.addWidget(self.tableWidget)
#CalendarWidget
self.calendarWidget = QtWidgets.QCalendarWidget(self.widget_5)
self.calendarWidget.setStyleSheet("color:black;")
self.calendarWidget.setObjectName("calendarWidget")
self.horizontalLayout_2.addWidget(self.calendarWidget)
self.verticalLayout_3.addWidget(self.widget_5)
self.widget_4 = QtWidgets.QWidget(self.widget_3)
self.widget_4.setStyleSheet("background-color: white;")
self.widget_4.setObjectName("widget_4")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_4)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.widget_8 = QtWidgets.QWidget(self.widget_4)
self.widget_8.setObjectName("widget_8")
self.verticalLayout_5.addWidget(self.widget_8)
self.widget_9 = QtWidgets.QWidget(self.widget_4)
self.widget_9.setObjectName("widget_9")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.widget_9)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem1)
#PushButton
self.pushButton = QtWidgets.QPushButton(self.widget_9)
self.pushButton.setStyleSheet("background-color: black;ncolor: white;")
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_6.addWidget(self.pushButton)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem2)
self.verticalLayout_5.addWidget(self.widget_9)
self.verticalLayout_3.addWidget(self.widget_4)
self.verticalLayout_2.addWidget(self.widget_3)
self.verticalWidget = QtWidgets.QWidget(self.widget_2)
self.verticalWidget.setStyleSheet("background-color: white;")
self.verticalWidget.setObjectName("verticalWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalWidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.widget_7 = QtWidgets.QWidget(self.verticalWidget)
self.widget_7.setObjectName("widget_7")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_7)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
#ListWidget
self.listWidget = QtWidgets.QListWidget(self.widget_7)
self.listWidget.setStyleSheet("background-color:#eee;")
self.listWidget.setObjectName("listWidget")
#Get files and insert into list widget
files = os.listdir("files")
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
self.horizontalLayout_4.addWidget(self.listWidget)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem3)
self.verticalLayout_4.addWidget(self.widget_7)
self.widget_6 = QtWidgets.QWidget(self.verticalWidget)
self.widget_6.setObjectName("widget_6")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem4)
#PushButton2
self.pushButton_2 = QtWidgets.QPushButton(self.widget_6)
self.pushButton_2.setStyleSheet("background-color:black;ncolor:white;")
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_3.addWidget(self.pushButton_2)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem5)
self.verticalLayout_4.addWidget(self.widget_6)
self.verticalLayout_2.addWidget(self.verticalWidget)
self.verticalLayout.addWidget(self.widget_2)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def save_file(self):
#Takvim değerini al
current_date = self.calendarWidget.selectedDate()
current_date_text = current_date.toPyDate().strftime("%d%b%y")
#Table'daki değerleri al
allRows = self.tableWidget.rowCount()
#Pandas table için listeleri oluştur
headers = []
items = []
for row in range(0,allRows):
print(row)
item = self.tableWidget.item(row,1).text()
items.append(item)
item = self.tableWidget.item(row,0).text()
headers.append(item)
#dataset oluştur
data_set = list(zip(headers,items))
#dataframe oluştur
data_frame = pd.DataFrame(data = data_set)
#csv dosyası oluştur
data_frame.to_csv("files/" + current_date_text + ".csv", index = False)
#listview güncelle
files = os.listdir("files")
print(files)
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
item = self.listWidget.item(index)
item.setText(value)
def open_file(self):
#dosya ismini al
selected_file = self.listWidget.currentItem().text()
#csv dosyasını aç dataframe oluştur
data_frame = pd.read_csv("files/" + selected_file)
items = data_frame["0"].values.tolist()
items = data_frame["1"].values.tolist()
print(items)
for row in range(0,total_rows):
header = row
item = self.tableWidget.setItem(0,row, QtWidgets.QTableWidgetItem(str(items[row])))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
#Set TableWidget
self.label.setText(_translate("MainWindow", "Defter"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Isim"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Miktar"))
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
self.pushButton.setText(_translate("MainWindow", "Kaydet"))
self.pushButton.clicked.connect(self.save_file)
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
files = os.listdir("files")
for index, value in enumerate(files):
item = self.listWidget.item(index)
item.setText(value)
self.listWidget.setSortingEnabled(__sortingEnabled)
self.pushButton_2.setText(_translate("MainWindow", "Dosyayı aç"))
self.pushButton_2.clicked.connect(self.open_file)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I put the print statements if my loops were just wrong. I checked and all loops run 20 times (As the x values reach 19 everytime).
Edit: It seems like double-digits are the problem.But this syntax is surely true according to the documentation.
self.tableWidget.setItem(1,10, QtWidgets.QTableWidgetItem("0"))
python python-3.x pyqt5
add a comment |
I'm programming a simple csv handler that will just look at two columns using python 3.7.2 and pyqt5. It will have a desired number of rows and all of them needs to be filled for my program to work. But when I run my loops only 11 out of 20 cells get filled. When I decrease the row count to 10 this ratio is 6/10 and for 6 this is 4/6. I can't find why this occurs.
Here is the loop that sets the headers firstly.
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
This is the loop that fills the first column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
And this is the loop that fills the second column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
For other details that you may need when you are solving my problems here is the whole code. (I have no file sharing platforms available right now. Please accept my apologies for sharing the whole code in text.)
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'database.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
import os
from pandas import DataFrame, read_csv
import pandas as pd
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
total_rows = 20
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(551, 602)
#Layout
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMaximumSize(QtCore.QSize(16777215, 70))
self.widget.setStyleSheet("background-color: black;")
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.widget)
self.label.setStyleSheet("color: white;nfont-size: 36px;")
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
spacerItem = QtWidgets.QSpacerItem(337, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(self.centralwidget)
self.widget_2.setStyleSheet("background-color: #777;")
self.widget_2.setObjectName("widget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.widget_3 = QtWidgets.QWidget(self.widget_2)
self.widget_3.setStyleSheet("background-color: #556;")
self.widget_3.setObjectName("widget_3")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_3)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.widget_5 = QtWidgets.QWidget(self.widget_3)
self.widget_5.setStyleSheet("background-color:white;")
self.widget_5.setObjectName("widget_5")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_5)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
#TableWidget
self.tableWidget = QtWidgets.QTableWidget(self.widget_5)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setStyleSheet("background-color: #eee;")
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(total_rows)
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.horizontalLayout_2.addWidget(self.tableWidget)
#CalendarWidget
self.calendarWidget = QtWidgets.QCalendarWidget(self.widget_5)
self.calendarWidget.setStyleSheet("color:black;")
self.calendarWidget.setObjectName("calendarWidget")
self.horizontalLayout_2.addWidget(self.calendarWidget)
self.verticalLayout_3.addWidget(self.widget_5)
self.widget_4 = QtWidgets.QWidget(self.widget_3)
self.widget_4.setStyleSheet("background-color: white;")
self.widget_4.setObjectName("widget_4")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_4)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.widget_8 = QtWidgets.QWidget(self.widget_4)
self.widget_8.setObjectName("widget_8")
self.verticalLayout_5.addWidget(self.widget_8)
self.widget_9 = QtWidgets.QWidget(self.widget_4)
self.widget_9.setObjectName("widget_9")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.widget_9)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem1)
#PushButton
self.pushButton = QtWidgets.QPushButton(self.widget_9)
self.pushButton.setStyleSheet("background-color: black;ncolor: white;")
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_6.addWidget(self.pushButton)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem2)
self.verticalLayout_5.addWidget(self.widget_9)
self.verticalLayout_3.addWidget(self.widget_4)
self.verticalLayout_2.addWidget(self.widget_3)
self.verticalWidget = QtWidgets.QWidget(self.widget_2)
self.verticalWidget.setStyleSheet("background-color: white;")
self.verticalWidget.setObjectName("verticalWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalWidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.widget_7 = QtWidgets.QWidget(self.verticalWidget)
self.widget_7.setObjectName("widget_7")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_7)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
#ListWidget
self.listWidget = QtWidgets.QListWidget(self.widget_7)
self.listWidget.setStyleSheet("background-color:#eee;")
self.listWidget.setObjectName("listWidget")
#Get files and insert into list widget
files = os.listdir("files")
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
self.horizontalLayout_4.addWidget(self.listWidget)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem3)
self.verticalLayout_4.addWidget(self.widget_7)
self.widget_6 = QtWidgets.QWidget(self.verticalWidget)
self.widget_6.setObjectName("widget_6")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem4)
#PushButton2
self.pushButton_2 = QtWidgets.QPushButton(self.widget_6)
self.pushButton_2.setStyleSheet("background-color:black;ncolor:white;")
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_3.addWidget(self.pushButton_2)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem5)
self.verticalLayout_4.addWidget(self.widget_6)
self.verticalLayout_2.addWidget(self.verticalWidget)
self.verticalLayout.addWidget(self.widget_2)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def save_file(self):
#Takvim değerini al
current_date = self.calendarWidget.selectedDate()
current_date_text = current_date.toPyDate().strftime("%d%b%y")
#Table'daki değerleri al
allRows = self.tableWidget.rowCount()
#Pandas table için listeleri oluştur
headers = []
items = []
for row in range(0,allRows):
print(row)
item = self.tableWidget.item(row,1).text()
items.append(item)
item = self.tableWidget.item(row,0).text()
headers.append(item)
#dataset oluştur
data_set = list(zip(headers,items))
#dataframe oluştur
data_frame = pd.DataFrame(data = data_set)
#csv dosyası oluştur
data_frame.to_csv("files/" + current_date_text + ".csv", index = False)
#listview güncelle
files = os.listdir("files")
print(files)
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
item = self.listWidget.item(index)
item.setText(value)
def open_file(self):
#dosya ismini al
selected_file = self.listWidget.currentItem().text()
#csv dosyasını aç dataframe oluştur
data_frame = pd.read_csv("files/" + selected_file)
items = data_frame["0"].values.tolist()
items = data_frame["1"].values.tolist()
print(items)
for row in range(0,total_rows):
header = row
item = self.tableWidget.setItem(0,row, QtWidgets.QTableWidgetItem(str(items[row])))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
#Set TableWidget
self.label.setText(_translate("MainWindow", "Defter"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Isim"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Miktar"))
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
self.pushButton.setText(_translate("MainWindow", "Kaydet"))
self.pushButton.clicked.connect(self.save_file)
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
files = os.listdir("files")
for index, value in enumerate(files):
item = self.listWidget.item(index)
item.setText(value)
self.listWidget.setSortingEnabled(__sortingEnabled)
self.pushButton_2.setText(_translate("MainWindow", "Dosyayı aç"))
self.pushButton_2.clicked.connect(self.open_file)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I put the print statements if my loops were just wrong. I checked and all loops run 20 times (As the x values reach 19 everytime).
Edit: It seems like double-digits are the problem.But this syntax is surely true according to the documentation.
self.tableWidget.setItem(1,10, QtWidgets.QTableWidgetItem("0"))
python python-3.x pyqt5
add a comment |
I'm programming a simple csv handler that will just look at two columns using python 3.7.2 and pyqt5. It will have a desired number of rows and all of them needs to be filled for my program to work. But when I run my loops only 11 out of 20 cells get filled. When I decrease the row count to 10 this ratio is 6/10 and for 6 this is 4/6. I can't find why this occurs.
Here is the loop that sets the headers firstly.
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
This is the loop that fills the first column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
And this is the loop that fills the second column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
For other details that you may need when you are solving my problems here is the whole code. (I have no file sharing platforms available right now. Please accept my apologies for sharing the whole code in text.)
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'database.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
import os
from pandas import DataFrame, read_csv
import pandas as pd
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
total_rows = 20
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(551, 602)
#Layout
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMaximumSize(QtCore.QSize(16777215, 70))
self.widget.setStyleSheet("background-color: black;")
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.widget)
self.label.setStyleSheet("color: white;nfont-size: 36px;")
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
spacerItem = QtWidgets.QSpacerItem(337, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(self.centralwidget)
self.widget_2.setStyleSheet("background-color: #777;")
self.widget_2.setObjectName("widget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.widget_3 = QtWidgets.QWidget(self.widget_2)
self.widget_3.setStyleSheet("background-color: #556;")
self.widget_3.setObjectName("widget_3")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_3)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.widget_5 = QtWidgets.QWidget(self.widget_3)
self.widget_5.setStyleSheet("background-color:white;")
self.widget_5.setObjectName("widget_5")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_5)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
#TableWidget
self.tableWidget = QtWidgets.QTableWidget(self.widget_5)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setStyleSheet("background-color: #eee;")
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(total_rows)
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.horizontalLayout_2.addWidget(self.tableWidget)
#CalendarWidget
self.calendarWidget = QtWidgets.QCalendarWidget(self.widget_5)
self.calendarWidget.setStyleSheet("color:black;")
self.calendarWidget.setObjectName("calendarWidget")
self.horizontalLayout_2.addWidget(self.calendarWidget)
self.verticalLayout_3.addWidget(self.widget_5)
self.widget_4 = QtWidgets.QWidget(self.widget_3)
self.widget_4.setStyleSheet("background-color: white;")
self.widget_4.setObjectName("widget_4")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_4)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.widget_8 = QtWidgets.QWidget(self.widget_4)
self.widget_8.setObjectName("widget_8")
self.verticalLayout_5.addWidget(self.widget_8)
self.widget_9 = QtWidgets.QWidget(self.widget_4)
self.widget_9.setObjectName("widget_9")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.widget_9)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem1)
#PushButton
self.pushButton = QtWidgets.QPushButton(self.widget_9)
self.pushButton.setStyleSheet("background-color: black;ncolor: white;")
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_6.addWidget(self.pushButton)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem2)
self.verticalLayout_5.addWidget(self.widget_9)
self.verticalLayout_3.addWidget(self.widget_4)
self.verticalLayout_2.addWidget(self.widget_3)
self.verticalWidget = QtWidgets.QWidget(self.widget_2)
self.verticalWidget.setStyleSheet("background-color: white;")
self.verticalWidget.setObjectName("verticalWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalWidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.widget_7 = QtWidgets.QWidget(self.verticalWidget)
self.widget_7.setObjectName("widget_7")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_7)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
#ListWidget
self.listWidget = QtWidgets.QListWidget(self.widget_7)
self.listWidget.setStyleSheet("background-color:#eee;")
self.listWidget.setObjectName("listWidget")
#Get files and insert into list widget
files = os.listdir("files")
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
self.horizontalLayout_4.addWidget(self.listWidget)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem3)
self.verticalLayout_4.addWidget(self.widget_7)
self.widget_6 = QtWidgets.QWidget(self.verticalWidget)
self.widget_6.setObjectName("widget_6")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem4)
#PushButton2
self.pushButton_2 = QtWidgets.QPushButton(self.widget_6)
self.pushButton_2.setStyleSheet("background-color:black;ncolor:white;")
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_3.addWidget(self.pushButton_2)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem5)
self.verticalLayout_4.addWidget(self.widget_6)
self.verticalLayout_2.addWidget(self.verticalWidget)
self.verticalLayout.addWidget(self.widget_2)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def save_file(self):
#Takvim değerini al
current_date = self.calendarWidget.selectedDate()
current_date_text = current_date.toPyDate().strftime("%d%b%y")
#Table'daki değerleri al
allRows = self.tableWidget.rowCount()
#Pandas table için listeleri oluştur
headers = []
items = []
for row in range(0,allRows):
print(row)
item = self.tableWidget.item(row,1).text()
items.append(item)
item = self.tableWidget.item(row,0).text()
headers.append(item)
#dataset oluştur
data_set = list(zip(headers,items))
#dataframe oluştur
data_frame = pd.DataFrame(data = data_set)
#csv dosyası oluştur
data_frame.to_csv("files/" + current_date_text + ".csv", index = False)
#listview güncelle
files = os.listdir("files")
print(files)
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
item = self.listWidget.item(index)
item.setText(value)
def open_file(self):
#dosya ismini al
selected_file = self.listWidget.currentItem().text()
#csv dosyasını aç dataframe oluştur
data_frame = pd.read_csv("files/" + selected_file)
items = data_frame["0"].values.tolist()
items = data_frame["1"].values.tolist()
print(items)
for row in range(0,total_rows):
header = row
item = self.tableWidget.setItem(0,row, QtWidgets.QTableWidgetItem(str(items[row])))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
#Set TableWidget
self.label.setText(_translate("MainWindow", "Defter"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Isim"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Miktar"))
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
self.pushButton.setText(_translate("MainWindow", "Kaydet"))
self.pushButton.clicked.connect(self.save_file)
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
files = os.listdir("files")
for index, value in enumerate(files):
item = self.listWidget.item(index)
item.setText(value)
self.listWidget.setSortingEnabled(__sortingEnabled)
self.pushButton_2.setText(_translate("MainWindow", "Dosyayı aç"))
self.pushButton_2.clicked.connect(self.open_file)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I put the print statements if my loops were just wrong. I checked and all loops run 20 times (As the x values reach 19 everytime).
Edit: It seems like double-digits are the problem.But this syntax is surely true according to the documentation.
self.tableWidget.setItem(1,10, QtWidgets.QTableWidgetItem("0"))
python python-3.x pyqt5
I'm programming a simple csv handler that will just look at two columns using python 3.7.2 and pyqt5. It will have a desired number of rows and all of them needs to be filled for my program to work. But when I run my loops only 11 out of 20 cells get filled. When I decrease the row count to 10 this ratio is 6/10 and for 6 this is 4/6. I can't find why this occurs.
Here is the loop that sets the headers firstly.
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
This is the loop that fills the first column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
And this is the loop that fills the second column with zeros.
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
For other details that you may need when you are solving my problems here is the whole code. (I have no file sharing platforms available right now. Please accept my apologies for sharing the whole code in text.)
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'database.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
import os
from pandas import DataFrame, read_csv
import pandas as pd
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
total_rows = 20
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(551, 602)
#Layout
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMaximumSize(QtCore.QSize(16777215, 70))
self.widget.setStyleSheet("background-color: black;")
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.widget)
self.label.setStyleSheet("color: white;nfont-size: 36px;")
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
spacerItem = QtWidgets.QSpacerItem(337, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(self.centralwidget)
self.widget_2.setStyleSheet("background-color: #777;")
self.widget_2.setObjectName("widget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.widget_3 = QtWidgets.QWidget(self.widget_2)
self.widget_3.setStyleSheet("background-color: #556;")
self.widget_3.setObjectName("widget_3")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_3)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.widget_5 = QtWidgets.QWidget(self.widget_3)
self.widget_5.setStyleSheet("background-color:white;")
self.widget_5.setObjectName("widget_5")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_5)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
#TableWidget
self.tableWidget = QtWidgets.QTableWidget(self.widget_5)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setStyleSheet("background-color: #eee;")
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(total_rows)
x = 0
while x<total_rows:
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(x, item)
x+=1
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.horizontalLayout_2.addWidget(self.tableWidget)
#CalendarWidget
self.calendarWidget = QtWidgets.QCalendarWidget(self.widget_5)
self.calendarWidget.setStyleSheet("color:black;")
self.calendarWidget.setObjectName("calendarWidget")
self.horizontalLayout_2.addWidget(self.calendarWidget)
self.verticalLayout_3.addWidget(self.widget_5)
self.widget_4 = QtWidgets.QWidget(self.widget_3)
self.widget_4.setStyleSheet("background-color: white;")
self.widget_4.setObjectName("widget_4")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_4)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.widget_8 = QtWidgets.QWidget(self.widget_4)
self.widget_8.setObjectName("widget_8")
self.verticalLayout_5.addWidget(self.widget_8)
self.widget_9 = QtWidgets.QWidget(self.widget_4)
self.widget_9.setObjectName("widget_9")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.widget_9)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem1)
#PushButton
self.pushButton = QtWidgets.QPushButton(self.widget_9)
self.pushButton.setStyleSheet("background-color: black;ncolor: white;")
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_6.addWidget(self.pushButton)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem2)
self.verticalLayout_5.addWidget(self.widget_9)
self.verticalLayout_3.addWidget(self.widget_4)
self.verticalLayout_2.addWidget(self.widget_3)
self.verticalWidget = QtWidgets.QWidget(self.widget_2)
self.verticalWidget.setStyleSheet("background-color: white;")
self.verticalWidget.setObjectName("verticalWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalWidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.widget_7 = QtWidgets.QWidget(self.verticalWidget)
self.widget_7.setObjectName("widget_7")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_7)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
#ListWidget
self.listWidget = QtWidgets.QListWidget(self.widget_7)
self.listWidget.setStyleSheet("background-color:#eee;")
self.listWidget.setObjectName("listWidget")
#Get files and insert into list widget
files = os.listdir("files")
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
self.horizontalLayout_4.addWidget(self.listWidget)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem3)
self.verticalLayout_4.addWidget(self.widget_7)
self.widget_6 = QtWidgets.QWidget(self.verticalWidget)
self.widget_6.setObjectName("widget_6")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem4)
#PushButton2
self.pushButton_2 = QtWidgets.QPushButton(self.widget_6)
self.pushButton_2.setStyleSheet("background-color:black;ncolor:white;")
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_3.addWidget(self.pushButton_2)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem5)
self.verticalLayout_4.addWidget(self.widget_6)
self.verticalLayout_2.addWidget(self.verticalWidget)
self.verticalLayout.addWidget(self.widget_2)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def save_file(self):
#Takvim değerini al
current_date = self.calendarWidget.selectedDate()
current_date_text = current_date.toPyDate().strftime("%d%b%y")
#Table'daki değerleri al
allRows = self.tableWidget.rowCount()
#Pandas table için listeleri oluştur
headers = []
items = []
for row in range(0,allRows):
print(row)
item = self.tableWidget.item(row,1).text()
items.append(item)
item = self.tableWidget.item(row,0).text()
headers.append(item)
#dataset oluştur
data_set = list(zip(headers,items))
#dataframe oluştur
data_frame = pd.DataFrame(data = data_set)
#csv dosyası oluştur
data_frame.to_csv("files/" + current_date_text + ".csv", index = False)
#listview güncelle
files = os.listdir("files")
print(files)
for index, value in enumerate(files):
item = QtWidgets.QListWidgetItem(value)
self.listWidget.addItem(item)
item = self.listWidget.item(index)
item.setText(value)
def open_file(self):
#dosya ismini al
selected_file = self.listWidget.currentItem().text()
#csv dosyasını aç dataframe oluştur
data_frame = pd.read_csv("files/" + selected_file)
items = data_frame["0"].values.tolist()
items = data_frame["1"].values.tolist()
print(items)
for row in range(0,total_rows):
header = row
item = self.tableWidget.setItem(0,row, QtWidgets.QTableWidgetItem(str(items[row])))
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
#Set TableWidget
self.label.setText(_translate("MainWindow", "Defter"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Isim"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Miktar"))
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(0,x, QtWidgets.QTableWidgetItem("0"))
x+=1
x = 0
while x<total_rows:
print(x)
self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
x+=1
self.pushButton.setText(_translate("MainWindow", "Kaydet"))
self.pushButton.clicked.connect(self.save_file)
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
files = os.listdir("files")
for index, value in enumerate(files):
item = self.listWidget.item(index)
item.setText(value)
self.listWidget.setSortingEnabled(__sortingEnabled)
self.pushButton_2.setText(_translate("MainWindow", "Dosyayı aç"))
self.pushButton_2.clicked.connect(self.open_file)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I put the print statements if my loops were just wrong. I checked and all loops run 20 times (As the x values reach 19 everytime).
Edit: It seems like double-digits are the problem.But this syntax is surely true according to the documentation.
self.tableWidget.setItem(1,10, QtWidgets.QTableWidgetItem("0"))
python python-3.x pyqt5
python python-3.x pyqt5
edited Mar 23 at 18:45
Elvez The Elf
asked Mar 23 at 17:55
Elvez The ElfElvez The Elf
408
408
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You changed rows with columns
# ...
x = 0
while x < total_rows:
# --- self.tableWidget.setItem(0, x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
x = 0
while x<total_rows:
# --- self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
# ...

add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55316733%2fcant-fill-some-cells-of-tablewidget-pyqt5%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You changed rows with columns
# ...
x = 0
while x < total_rows:
# --- self.tableWidget.setItem(0, x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
x = 0
while x<total_rows:
# --- self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
# ...

add a comment |
You changed rows with columns
# ...
x = 0
while x < total_rows:
# --- self.tableWidget.setItem(0, x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
x = 0
while x<total_rows:
# --- self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
# ...

add a comment |
You changed rows with columns
# ...
x = 0
while x < total_rows:
# --- self.tableWidget.setItem(0, x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
x = 0
while x<total_rows:
# --- self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
# ...

You changed rows with columns
# ...
x = 0
while x < total_rows:
# --- self.tableWidget.setItem(0, x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 0, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
x = 0
while x<total_rows:
# --- self.tableWidget.setItem(1,x, QtWidgets.QTableWidgetItem("0"))
self.tableWidget.setItem(x, 1, QtWidgets.QTableWidgetItem("0")) # +++
x += 1
# ...

answered Mar 23 at 20:49
S. NickS. Nick
4,371268
4,371268
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55316733%2fcant-fill-some-cells-of-tablewidget-pyqt5%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown