mousePressEvent(self, QMouseEvent): argument 1 has unexpected type 'method'

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
Python 3.8
Win 7
День добрый. Пытаюсь встроить фильтр на определение клика ПКМ и ЛКМ. На форме есть только TableWidget. Применяю примерно такой код. Получаю указанную выше ошибку. Можете объяснить в чём косяк?
Python:
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.tbl_las.verticalHeader().mousePressEvent(self.form)

    def form(self, e):
        if e.button() == QtCore.Qt.LeftButton:
            print(1)
        else:
            print(0)
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
Актуально
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
пример
Python:
import sys
from PyQt5.QtWidgets import QApplication, QWidget


class Main(QWidget):

    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        if not parent:
            self.show()

    def mousePressEvent(self, event):
        if event.button() == 1:
            print('Нажата левая кнопка мыши')
        elif event.button() == 2:
            print('Нажата правая кнопка мыши')
        

if __name__ == '__main__':
    App = QApplication(sys.argv)
    main = Main()
    sys.exit(App.exec_())

вместо 1 и 2 можно использовать QtCore.Qt.LeftButton и QtCore.Qt.RightButton соответственно...
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
пример
Python:
import sys
from PyQt5.QtWidgets import QApplication, QWidget


class Main(QWidget):

    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        if not parent:
            self.show()

    def mousePressEvent(self, event):
        if event.button() == 1:
            print('Нажата левая кнопка мыши')
        elif event.button() == 2:
            print('Нажата правая кнопка мыши')
      

if __name__ == '__main__':
    App = QApplication(sys.argv)
    main = Main()
    sys.exit(App.exec_())

вместо 1 и 2 можно использовать QtCore.Qt.LeftButton и QtCore.Qt.RightButton соответственно...
На основе подобного примера код и делал. Только он к заголовку не прикрепляется, а искажать файл дизайна, вписывая в него нечто похожее не шибко хочется.

Вот пример к чему стремлюсь на основе VB.Net, которым раньше пользовался:

Код:
    Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
        If e.Button = MouseButtons.Left Then
            Label1.Text = 1
        End If
        If e.Button = MouseButtons.Right Then
            Label1.Text = 2
        End If
    End Sub
 
Последнее редактирование:

Форум IT Специалистов