Я работал над интерфейсом PySide для Maya, и мне было интересно узнать, можно ли его определить для NON RECTANGULAR clickeable area для кнопки.Область щелчка кнопки PyQt (не прямоугольная область)
Я попытался с помощью QPushButton, а также расширение объекта QLabel, чтобы получить поведение кнопки, но вы знаете, если его можно получить кнопку, содержащее изображение с альфа-каналом и использовать этот альфа для определения области щелчка для кнопки?
Буду признателен, если вы можете помочь мне решить, как решить эту проблему. Спасибо заранее.
Я попытался это ...
from PySide import QtCore
from PySide import QtGui
class QLabelButton(QtGui.QLabel):
def __init(self, parent):
QtGui.QLabel.__init__(self, parent)
def mousePressEvent(self, ev):
self.emit(QtCore.SIGNAL('clicked()'))
class CustomButton(QtGui.QWidget):
def __init__(self, parent=None, *args):
super(CustomButton, self).__init__(parent)
self.setMinimumSize(300, 350)
self.setMaximumSize(300, 350)
picture = __file__.replace('qbtn.py', '') + 'mario.png'
self.button = QLabelButton(self)
self.button.setPixmap(QtGui.QPixmap(picture))
self.button.setScaledContents(True)
self.connect(self.button, QtCore.SIGNAL('clicked()'), self.onClick)
def onClick(self):
print('Button was clicked')
if __name__ == '__main__':
app = QApplication(sys.argv)
win = CustomButton()
win.show()
app.exec_()
sys.exit()
. Примечание: картинка = __file __ заменить ('qbtn.py', '') + «Марио .png ' ссылается на имя файла python, чтобы получить относительный путь для файла png, который находится в той же папке файла .py. –