def floatAsItem(self, value):
item = QTableWidgetItem()
item.setData(Qt.EditRole, value)
return item
#Change commmand string when combo box changes
python类QTableWidgetItem()的实例源码
def addButton_onClicked(self):
if(len(self.poseName.text()) > 0):
rowPosition = self.table.rowCount()
self.table.insertRow(rowPosition)
self.table.setVerticalHeaderItem(rowPosition, QtGui.QTableWidgetItem(self.poseName.text()))
self.poseName.setText('')
self.table.setItem(rowPosition , 0, self.floatAsItem(0.5))
self._updateWidgetSize()
# Delete selected row
def __init__(self, correlationTable, colorTable,GraphDataStructure):
n = len(correlationTable.header)
super(CommunityCorrelationTableDisplay, self).__init__(n, n)
from collections import defaultdict
self.CommunityMode = False
self.MouseReleased = True
self.colorTable = colorTable
self.sortedDict= defaultdict(list)
self.newWindowWidget = []
self.Selectionmode = True
self.GraphDataStructure = weakref.ref(GraphDataStructure)
self.data = self.GraphDataStructure().ThresholdData
self.Order = []
self.i = 0
self.newwidget = None
self.Brain_Regions = correlationTable.RegionName[0]
self.First = True
self.g= []
self.isElementsSorted = False
self.setMinimumSize(800,400)
self.setContentsMargins(0, 0, 0, 0)
self.correlationTable = correlationTable
self.setVerticalHeaderLabels(self.correlationTable.header)
self.setHorizontalHeaderLabels(['\n'.join(name) for name in self.correlationTable.header])
font = QtGui.QFont()
font.setPointSize(8)
self.horizontalHeader().setFont(font)
self.verticalHeader().setFont(font)
if n < 50:
CellSize= 40
else:
CellSize = 4
for i in range(n):
self.setColumnWidth(i,CellSize)
self.setRowHeight(i, CellSize)
self.resizeRowToContents(i)
self.horizontalHeaderItem(i).setToolTip(self.correlationTable.header[i])
self.verticalHeaderItem(i).setToolTip(self.correlationTable.header[i])
for i in range(len(self.correlationTable.header)):
for j in range(len(self.correlationTable.header)):
table_item = QtGui.QTableWidgetItem()
self.setItem(i, j, table_item)
self.resizeColumnsToContents()
self.setSizePolicy(QtGui.QSizePolicy.Policy.Expanding, QtGui.QSizePolicy.Policy.Expanding)
self.setShowGrid(False)
self.setStyleSheet("selection-background-color: transparent;")
self.setItemDelegate(self.BackgroundDelegate())
self.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
self.itemSelectionChanged.connect(self.handleSelectionChange)
def findEntries(self):
for i in range(self.categoriesTable.rowCount(), 0, -1):
self.categoriesTable.removeRow(i - 1)
##
self.sql.reloadList()
for i in self.sql.packages():
dane = self.sql.getValues(i)
software = eval(dane["soft"])
for j in software:
if j[1] == self.fromSoftware.currentText():
rowNumber = self.categoriesTable.rowCount()
self.categoriesTable.insertRow(rowNumber)
#
widgetActive = QtGui.QCheckBox('')
widgetActive.setStyleSheet('margin-left:18px;')
self.categoriesTable.setCellWidget(rowNumber, 0, widgetActive)
#
item0 = QtGui.QTableWidgetItem(i)
self.categoriesTable.setItem(rowNumber, 1, item0)
#
item1 = QtGui.QTableWidgetItem(dane["name"])
item1.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
self.categoriesTable.setItem(rowNumber, 2, item1)
#
item2 = QtGui.QTableWidgetItem(j[0])
self.categoriesTable.setItem(rowNumber, 3, item2)
#
itemCat = QtGui.QTableWidgetItem(readCategories()[int(dane['category'])][0])
itemCat.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
self.categoriesTable.setItem(rowNumber, 4, itemCat)
#
item3 = QtGui.QTableWidgetItem(str(j[2]))
item3.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 5, item3)
#
item4 = QtGui.QTableWidgetItem(str(j[3]))
item4.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 6, item4)
#
item5 = QtGui.QTableWidgetItem(str(j[4]))
item5.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 7, item5)
#
item6 = QtGui.QTableWidgetItem(str(j[5]))
item6.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 8, item6)
#
item7 = QtGui.QTableWidgetItem(str(j[6]))
item7.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 9, item7)
#
item8 = QtGui.QTableWidgetItem(str(j[7]))
item8.setTextAlignment(QtCore.Qt.AlignCenter)
self.categoriesTable.setItem(rowNumber, 10, item8)
def addRow(self, rowType):
self.insertRow(self.rowCount())
row = self.rowCount() - 1
b = QtGui.QCheckBox("")
b.setToolTip(u"Active")
self.setCellWidget(row, 0, b)
a = QtGui.QTableWidgetItem(rowType)
a.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
self.setItem(row, 1, a)
c = QtGui.QComboBox()
c.addItems(["True", "False"])
self.setCellWidget(row, 2, c)
d = QtGui.QDoubleSpinBox()
d.setSingleStep(0.1)
d.setRange(-1000, 1000)
d.setSuffix("mm")
self.setCellWidget(row, 3, d)
e = QtGui.QDoubleSpinBox()
e.setSingleStep(0.1)
e.setRange(-1000, 1000)
e.setSuffix("mm")
self.setCellWidget(row, 4, e)
f = QtGui.QDoubleSpinBox()
f.setSingleStep(0.1)
f.setRange(-1000, 1000)
f.setSuffix("mm")
self.setCellWidget(row, 5, f)
g = QtGui.QDoubleSpinBox()
g.setSingleStep(0.1)
g.setValue(1.27)
g.setSuffix("mm")
self.setCellWidget(row, 6, g)
color = kolorWarstwy()
color.setToolTip(u"Click to change color")
self.setCellWidget(row, 7, color)
i = QtGui.QComboBox()
i.addItems(["bottom-left", "bottom-center", "bottom-right", "center-left", "center", "center-right", "top-left", "top-center", "top-right"])
i.setCurrentIndex(4)
self.setCellWidget(row, 8, i)
#
self.setColumnWidth(0, 25)
def __init__(self, correlationTable, colorTable,GraphDataStructure):
n = len(correlationTable.header)
super(CommunityCorrelationTableDisplay, self).__init__(n, n)
from collections import defaultdict
self.CommunityMode = False
self.MouseReleased = True
self.colorTable = colorTable
self.sortedDict= defaultdict(list)
self.newWindowWidget = []
self.Selectionmode = True
self.GraphDataStructure = weakref.ref(GraphDataStructure)
self.data = self.GraphDataStructure().ThresholdData
self.Order = []
self.i = 0
self.newwidget = None
self.Brain_Regions = correlationTable.RegionName[0]
self.First = True
self.g= []
self.isElementsSorted = False
self.setMinimumSize(800,400)
self.setContentsMargins(0, 0, 0, 0)
self.correlationTable = correlationTable
self.setVerticalHeaderLabels(self.correlationTable.header)
self.setHorizontalHeaderLabels(['\n'.join(name) for name in self.correlationTable.header])
font = QtGui.QFont()
font.setPointSize(8)
self.horizontalHeader().setFont(font)
self.verticalHeader().setFont(font)
if n < 50:
CellSize= 18
else:
CellSize = 4
for i in range(n):
self.setColumnWidth(i,CellSize)
self.setRowHeight(i, CellSize)
# self.resizeRowToContents(i)
self.horizontalHeaderItem(i).setToolTip(self.correlationTable.header[i])
self.verticalHeaderItem(i).setToolTip(self.correlationTable.header[i])
for i in range(len(self.correlationTable.header)):
for j in range(len(self.correlationTable.header)):
table_item = QtGui.QTableWidgetItem()
self.setItem(i, j, table_item)
# self.resizeColumnsToContents()
self.setSizePolicy(QtGui.QSizePolicy.Policy.Expanding, QtGui.QSizePolicy.Policy.Expanding)
self.setShowGrid(False)
self.setStyleSheet("selection-background-color: transparent;")
self.setItemDelegate(self.BackgroundDelegate())
self.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
self.itemSelectionChanged.connect(self.handleSelectionChange)
def fill_artist_table(self):
#copy = self.db_artist
artists = self.db_workroom.read_artist('all')
if not artists[0]:
return
# get workroom data
wr_id_dict = {}
wr_name_dict = {}
result = self.db_workroom.get_list_workrooms(DICTONARY = 'by_id_by_name')
if not result[0]:
self.message(result[1], 3)
#return
else:
wr_id_dict = result[1]
wr_name_dict = result[2]
# get table data
num_row = len(artists[1])
num_column = len(self.db_workroom.artists_keys)
headers = []
for item in self.db_workroom.artists_keys:
headers.append(item[0])
# make table
self.myWidget.studio_editor_table.setColumnCount(num_column)
self.myWidget.studio_editor_table.setRowCount(num_row)
self.myWidget.studio_editor_table.setHorizontalHeaderLabels(headers)
# fill table
for i, artist in enumerate(artists[1]):
for j,key in enumerate(headers):
if key == 'date_time':
continue
newItem = QtGui.QTableWidgetItem()
newItem.setText(artist[key])
if key == 'nik_name':
color = self.artist_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
if key == 'workroom':
if artist[key]:
wr_list = json.loads(artist[key])
wr_string = ''
for wr_id in wr_list:
if wr_id in wr_id_dict:
wr_string = wr_string + wr_id_dict[wr_id]['name'] + ', '
newItem.setText(wr_string)
newItem.artist = artist
self.myWidget.studio_editor_table.setItem(i, j, newItem)
self.myWidget.studio_editor_table.wr_id_dict = wr_id_dict
self.myWidget.studio_editor_table.wr_name_dict = wr_name_dict
print('fill artist table')
def fill_workroom_table(self, table):
copy = self.db_workroom
workrooms = copy.get_list_workrooms()
if not workrooms[0]:
return
self.set_self_workrooms(workrooms = workrooms)
# look_keys
look_keys = ['name']
# get table data
num_row = len(workrooms[1])
num_column = len(look_keys)
headers = []
for item in look_keys:
headers.append(item)
# make table
table.setColumnCount(num_column)
table.setRowCount(num_row)
table.setHorizontalHeaderLabels(headers)
# fill table
for i, workroom in enumerate(workrooms[1]):
for j,key in enumerate(headers):
if key == 'date_time':
continue
newItem = QtGui.QTableWidgetItem()
newItem.setText(workroom[key])
newItem.workroom = workroom
if key == 'name':
color = self.workroom_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
table.setItem(i, j, newItem)
table.resizeRowsToContents()
table.resizeColumnsToContents()
print('fill workroom table')
def fill_active_artist_table_at_workroom(self, wr_name):
copy = self.db_workroom
artists = copy.read_artist('all')
if not artists[0]:
print(artists[1])
return
# get worktoom_id
result = copy.get_id_by_name(wr_name)
if not result[0]:
self.message(result[1], 2)
return
wr_id = result[1]
# get artist list
active_artists = []
for artist in artists[1]:
# get workroom
wr_list = []
if artist['workroom']:
wr_list = json.loads(artist['workroom'])
if wr_id in wr_list and artist['status'] == 'active':
active_artists.append(artist)
# get table data
num_row = len(active_artists)
num_column = len(self.look_keys)
headers = self.look_keys
# make table
self.myWidget.studio_editor_table.setColumnCount(num_column)
self.myWidget.studio_editor_table.setRowCount(num_row)
self.myWidget.studio_editor_table.setHorizontalHeaderLabels(headers)
# fill table
for i, artist in enumerate(active_artists):
for j,key in enumerate(headers):
if not (key in self.look_keys):
continue
newItem = QtGui.QTableWidgetItem()
newItem.setText(artist[key])
if key == 'nik_name':
color = self.artist_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
self.myWidget.studio_editor_table.setItem(i, j, newItem)
print('fill active artist table')
def fill_active_artist_table_for_workroom(self, wr_name, window):
copy = self.db_workroom
artists = copy.read_artist('all')
if not artists[0]:
return
# get active list
active_artists = []
for artist in artists[1]:
if artist['status'] == 'active':
active_artists.append(artist)
# get worktoom_id
result = copy.get_id_by_name(wr_name)
if not result[0]:
self.message(result[1], 2)
return
wr_id = result[1]
# get table data
num_row = len(active_artists)
num_column = len(self.look_keys)
headers = self.look_keys
# make table
window.select_from_list_data_list_table.setColumnCount(num_column)
window.select_from_list_data_list_table.setRowCount(num_row)
window.select_from_list_data_list_table.setHorizontalHeaderLabels(headers)
# fill table
for i, artist in enumerate(active_artists):
wr_list = []
if artist['workroom']:
wr_list = json.loads(artist['workroom'])
for j,key in enumerate(headers):
if not (key in self.look_keys):
continue
newItem = QtGui.QTableWidgetItem()
newItem.setText(artist[key])
if key == 'nik_name' and not wr_id in wr_list:
color = self.artist_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
elif wr_id in wr_list:
color = self.grey_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
window.select_from_list_data_list_table.setItem(i, j, newItem)
print('fill active artist table')
def look_set_of_task_from_library(self, table, data):
name = table.currentItem().name
right_data = data[name]['sets']
# widget
loader = QtUiTools.QUiLoader()
file = QtCore.QFile(self.select_from_list_dialog_path)
file.open(QtCore.QFile.ReadOnly)
window = self.selectWorkroomDialog = loader.load(file, self)
file.close()
# -- get table data
num_row = len(right_data)
num_column = len(self.db_set_of_tasks.set_of_tasks_keys)
headers = self.db_set_of_tasks.set_of_tasks_keys
# -- make table
window.select_from_list_data_list_table.setColumnCount(num_column)
window.select_from_list_data_list_table.setRowCount(num_row)
window.select_from_list_data_list_table.setHorizontalHeaderLabels(headers)
# fill table
for i, set_of_tasks in enumerate(right_data):
for j,key in enumerate(headers):
if not (key in self.db_set_of_tasks.set_of_tasks_keys):
continue
newItem = QtGui.QTableWidgetItem()
try:
newItem.setText(set_of_tasks[key])
except:
pass
if key == 'task_name':
color = self.tasks_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
elif key == 'workroom':
try:
newItem.setText('')
except:
pass
window.select_from_list_data_list_table.setItem(i, j, newItem)
# edit widjet
window.setWindowTitle(('Set Of Tasks: ' + name))
window.select_from_list_cansel_button.clicked.connect(partial(self.close_window, window))
window.select_from_list_apply_button.setVisible(False)
# set modal window
window.setWindowModality(QtCore.Qt.WindowModal)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
window.show()
def fill_series_table(self, *args):
table = args[0]
project = args[1]
if project == '-- select project --':
self.current_project = False
self.default_state_series_table(table)
return
else:
self.current_project = project
# get table data
series = []
#copy = db.series()
#result = copy.get_list(project)
result = self.db_series.get_list(project)
if result[0]:
series = result[1]
columns = self.series_columns
num_row = len(series)
num_column = len(columns)
headers = columns
# make table
table.setColumnCount(num_column)
table.setRowCount(num_row)
table.setHorizontalHeaderLabels(headers)
# fill table
for i, data in enumerate(series):
for j,key in enumerate(headers):
newItem = QtGui.QTableWidgetItem()
newItem.setText(data[key])
if key == 'name':
color = self.series_color
brush = QtGui.QBrush(color)
newItem.setBackground(brush)
table.setItem(i, j, newItem)
# edit label
self.myWidget.studio_editor_label.setText(('Series Editor / \"' + project + '\"'))
table.resizeRowsToContents()
table.resizeColumnsToContents()
print('fill series table', result)
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(1262, 529)
self.user_email = QtGui.QLabel(Form)
self.user_email.setGeometry(QtCore.QRect(1030, 20, 221, 31))
font = QtGui.QFont()
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.user_email.setFont(font)
self.user_email.setObjectName("user_email")
self.retrieve_button = QtGui.QPushButton(Form)
self.retrieve_button.setGeometry(QtCore.QRect(10, 50, 103, 34))
self.retrieve_button.setObjectName("retrieve_button")
self.compose_button = QtGui.QPushButton(Form)
self.compose_button.setGeometry(QtCore.QRect(140, 50, 103, 34))
self.compose_button.setObjectName("compose_button")
self.received_email = QtGui.QTableWidget(Form)
self.received_email.setGeometry(QtCore.QRect(10, 90, 821, 431))
self.received_email.setObjectName("received_email")
self.received_email.setColumnCount(3)
self.received_email.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.received_email.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.received_email.setHorizontalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.received_email.setHorizontalHeaderItem(2, item)
self.email_body = QtGui.QTextBrowser(Form)
self.email_body.setGeometry(QtCore.QRect(840, 120, 411, 401))
self.email_body.setObjectName("email_body")
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(930, 80, 91, 41))
font = QtGui.QFont()
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.label.setFont(font)
self.label.setObjectName("label")
self.app_title = QtGui.QLabel(Form)
self.app_title.setGeometry(QtCore.QRect(10, 0, 101, 41))
font = QtGui.QFont()
font.setPointSize(18)
font.setWeight(75)
font.setBold(True)
self.app_title.setFont(font)
self.app_title.setObjectName("app_title")
self.showing_label = QtGui.QLabel(Form)
self.showing_label.setGeometry(QtCore.QRect(560, 60, 271, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setWeight(75)
font.setBold(True)
self.showing_label.setFont(font)
self.showing_label.setObjectName("showing_label")
self.open_browser = QtGui.QPushButton(Form)
self.open_browser.setGeometry(QtCore.QRect(1100, 80, 151, 34))
self.open_browser.setObjectName("open_browser")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def findQubeItems(self,*args):
import datetime
self.qubeTable.setSortingEnabled(False)
omit=['killed','failed','blocked']
if self.qubeCompleteChbox.isChecked():
omit.append('complete')
#reset table
for r in range(self.qubeTable.rowCount()):
self.qubeTable.removeRow(0)
for k in self.qubeStatus.keys():
qubeJob=self.qubeStatus[k]
if self.seqSelection.currentText() in qubeJob['seq']:
if not qubeJob['status'] in omit:
if self.qubeGroupCombo.currentText() in qubeJob['groups']:
if not self.qubeShotChbox.checkState() or self.selShot in qubeJob['name']:
if datetime.datetime.fromtimestamp(qubeJob['timecomplete']) > self.qubeDateTimeEdit.dateTime().toPython() or qubeJob['timecomplete']==946702800:
self.qubeDateTimeEdit.dateTime().toPython()
rowNum=self.qubeTable.rowCount()
self.qubeTable.insertRow(rowNum)
self.qubeTable.setRowHeight(rowNum, 15)
#set itemName
item=QtGui.QTableWidgetItem()
item.setText(qubeJob['name'])
self.qubeTable.setItem(rowNum,0,item)
#set itemStatus
item=QtGui.QTableWidgetItem()
item.setText(qubeJob['status'])
self.qubeTable.setItem(rowNum,1,item)
#set percentage
item=QtGui.QTableWidgetItem()
progBar=QtGui.QProgressBar()
progBar.setMaximum(int(qubeJob['todo']))
progBar.setValue(int(qubeJob['todotally']['complete']))
#item.addWidget(progBar)
#item.setText(str(qubeJob['todo']))
self.qubeTable.setCellWidget(rowNum,2,progBar)
if qubeJob['status']=='complete':
#set complete time
item=QtGui.QTableWidgetItem()
date = datetime.datetime.fromtimestamp(qubeJob['timecomplete'])
item.setText(date.strftime("%m/%d %I:%M%p"))
self.qubeTable.setItem(rowNum,3,item)
self.qubeTable.setSortingEnabled(True)