Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 29, 2016 15:48:18

ROBOT-3000
Зарегистрирован: 2016-11-27
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableWidgetItem

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)
Решено !!!!
СПАСИБО ОГРОМНОЕ!

Офлайн

#2 Ноя. 29, 2016 16:21:01

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

QTableWidgetItem

“палочка” это ваша иконка? тогда это нормально, у вас же на виджете две 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)

Пока писал ответ, топикстартер сам разобрался..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 29, 2016 16:28:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version