Найти - Пользователи
Полная версия: QTableWidgetItem
Начало » Python для новичков » QTableWidgetItem
1 2
ROBOT-3000
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)
label = QtGui.QLabel()
label.setPixmap(QtGui.QPixmap(icon))
label.setAlignment(QtCore.Qt.AlignCenter)
layout.addWidget(label)
Решено !!!!
СПАСИБО ОГРОМНОЕ!
PEHDOM
“палочка” это ваша иконка? тогда это нормально, у вас же на виджете две QLabel.
несмотря на то что текст вы не передаете, сам QLabel отрисовываеться и занимает место в лайоте (рамка у него там или еще что). Вот вам и “сдвиг”
1. совем уберите label1.
тогда вообще можно упростить код до такого: там QWidget и лайоты не нужны, просто фигачте картинку в лебл.
 class TableWidgetItem(QtGui.QLabel):
      def __init__(self, icon):
        QtGui.QLabel.__init__(self)
        self.setPixmap(QtGui.QPixmap(icon))
2 .если в некоторых случая вам нужет таки текст то не отрисовывайтеlabel1 если текст пустой:
удалите все строки где есть label1. и поместите после layout.setSpacing(0) такой код
 if text:
    label1 = QtGui.QLabel()
    label1.setText(text)
    label1.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
    layout.addWidget(label1)

Пока писал ответ, топикстартер сам разобрался..
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB