def on_clicked_btn(self):
_item = QtGui.QTableWidgetItem(QtGui.QIcon(self._ICON_), "D")
self.table.setItem(self.table.currentRow(), self.table.currentColumn(), _item)
Надо на оборот.
def on_clicked_btn(self):
_item = QtGui.QTableWidgetItem(QtGui.QIcon(self._ICON_), "D")
self.table.setItem(self.table.currentRow(), self.table.currentColumn(), _item)
from PyQt4 import QtGui import sys class TableWidget(QtGui.QTableWidget): def __init__(self, parent=None): QtGui.QTableWidget.__init__(self, parent) rows, columns = 5, 5 self._ICON_ = 'вписать сюда путь к картинке с иконкой' self.setColumnCount(columns) self.setRowCount(rows) self.show() for row in range(rows): for column in range(columns): item = TableWidgetItem(self._ICON_,""+str(row+1)+','+str(column+1)) self.setCellWidget(row, column, item) class TableWidgetItem(QtGui.QWidget): def __init__(self, icon, text): QtGui.QWidget.__init__(self) layout = QtGui.QHBoxLayout(self) layout.setContentsMargins(0,0,0,0) layout.setSpacing(0) label1 = QtGui.QLineEdit() label1.setText(text) label1.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) label1.setFrame(False) label2 = QtGui.QLabel() label2.setPixmap(QtGui.QPixmap(icon)) layout.addWidget(label1) layout.addWidget(label2) app = QtGui.QApplication(sys.argv) t=TableWidget() sys.exit(app.exec_())
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4.QtGui import *
class Icons(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.table = QtGui.QTableWidget(self)
self.table.setRowCount(50)
self.table.setColumnCount(50)
self.table.setGeometry(0, 29, 300, 400)
self.table.verticalHeader()
self.table.horizontalHeader()
self.table.show()
self._ICON_ = 'med1.png'
self.table.horizontalHeader().hide()
self.table.verticalHeader().hide()
# test
self.table.setColumnWidth(0, 30)
self.table.setRowHeight(0, 30)
self.table.resizeColumnsToContents()
#self.table.resizeRowsToContents()
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
#################################################################################
self.btn = QtGui.QPushButton("", self)
self.btn.setGeometry(0, 0, 80, 30), self.btn.sizeHint(), self.btn.resize(30, 30), self.btn.setIcon(QtGui.QIcon("ico.png"))
self.connect(self.btn, QtCore.SIGNAL("clicked()"), self.on_clicked_btn)
self.btn.show()
##################################################################################
def on_clicked_btn(self):
_item = TableWidgetItem(self._ICON_, "")
#_item.setTextAlignment(QtCore.Qt.AlignCenter)
self.table.setCellWidget(self.table.currentRow(), self.table.currentColumn(), _item)
##################################################################################
class TableWidgetItem(QtGui.QWidget):
def __init__(self, icon, text):
QtGui.QWidget.__init__(self)
layout = QtGui.QHBoxLayout(self)
layout.setContentsMargins(0, 0, 28, 0)
layout.setSpacing(0)
label1 = QtGui.QLabel()
label1.setText(text)
label1.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
label2 = QtGui.QLabel()
label2.setPixmap(QtGui.QPixmap(icon))
layout.addWidget(label1)
layout.addWidget(label2)
app = QtGui.QApplication(sys.argv)
qb = Icons()
qb.show()
sys.exit(app.exec_())
import sys from PyQt4 import QtGui from PyQt4 import QtCore from PyQt4.QtGui import * class Icons(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.table = QtGui.QTableWidget(self) self.table.setRowCount(50) self.table.setColumnCount(50) self.table.setGeometry(0, 29, 300, 400) self.table.verticalHeader() self.table.horizontalHeader() self.table.show() self._ICON_ = 'med1.png' self.table.horizontalHeader().hide() self.table.verticalHeader().hide() # test self.table.setColumnWidth(0, 30) self.table.setRowHeight(0, 30) self.table.resizeColumnsToContents() self.table.resizeRowsToContents() self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Icon') ################################################################################# self.btn = QtGui.QPushButton("", self) self.btn.setGeometry(0, 0, 80, 30), self.btn.sizeHint(), self.btn.resize(30, 30), self.btn.setIcon(QtGui.QIcon("ico.png")) self.connect(self.btn, QtCore.SIGNAL("clicked()"), self.on_clicked_btn) self.btn.show() ################################################################################## def on_clicked_btn(self): _item = TableWidgetItem(self._ICON_, "") #_item.setTextAlignment(QtCore.Qt.AlignCenter) self.table.setCellWidget(self.table.currentRow(), self.table.currentColumn(), _item) # подгоняем размер ячейки под содержимое self.table.resizeColumnToContents(self.table.currentColumn()) self.table.resizeRowToContents(self.table.currentRow()) ################################################################################## class TableWidgetItem(QtGui.QWidget): def __init__(self, icon, text): QtGui.QWidget.__init__(self) layout = QtGui.QHBoxLayout(self) layout.setContentsMargins(0, 0, 28, 0) layout.setSpacing(0) label1 = QtGui.QLabel() label1.setText(text) label1.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) label2 = QtGui.QLabel() label2.setPixmap(QtGui.QPixmap(icon)) layout.addWidget(label1) layout.addWidget(label2) app = QtGui.QApplication(sys.argv) qb = Icons() qb.show() sys.exit(app.exec_())