質問するログイン新規登録

質問編集履歴

2

プログラム修正、未解決のため再度投稿

2019/10/16 02:58

投稿

WMS
WMS

スコア37

title CHANGED
File without changes
body CHANGED
@@ -68,4 +68,100 @@
68
68
  MainWindow.show()
69
69
  sys.exit(app.exec_())
70
70
 
71
+ ```
72
+
73
+
74
+ その後、
75
+ ご教授頂いたソースを元にプログラムを修正しましたが
76
+ 「installEventFilter(self, QObject): argument 1 has unexpected type 'Ui_MainWindow'」
77
+ というエラーになり悩んでおります。
78
+
79
+ https://stackoverflow.com/questions/50768366/installeventfilter-in-pyqt5
80
+
81
+ 色々と調べて上記URLにたどり着き、QtDesignerで作成しているのが原因?
82
+ というところまでは何となく把握できたのですが、
83
+ どうプログラムを修正したらいいかわからずにいます。
84
+ 恐れ入ります、今一度ご教授頂けないでしょうか。
85
+ 以下、修正中のソースになります。
86
+
87
+
88
+ ```python
89
+ import sys
90
+ from PyQt5 import QtCore, QtGui, QtWidgets
91
+ from PyQt5.QtWidgets import *
92
+ from PyQt5.QtCore import *
93
+
94
+ class Ui_MainWindow(object):
95
+ def setupUi(self, MainWindow):
96
+ MainWindow.setObjectName("MainWindow")
97
+ MainWindow.resize(256, 267)
98
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
99
+ self.centralwidget.setObjectName("centralwidget")
100
+ self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
101
+ self.lineEdit1.setGeometry(QtCore.QRect(70, 60, 113, 20))
102
+ self.lineEdit1.setObjectName("lineEdit1")
103
+ self.lineEdit2 = QtWidgets.QLineEdit(self.centralwidget)
104
+ self.lineEdit2.setGeometry(QtCore.QRect(70, 90, 113, 20))
105
+ self.lineEdit2.setObjectName("lineEdit2")
106
+ self.lineEdit3 = QtWidgets.QLineEdit(self.centralwidget)
107
+ self.lineEdit3.setGeometry(QtCore.QRect(70, 120, 113, 20))
108
+ self.lineEdit3.setObjectName("lineEdit3")
109
+ self.label = QtWidgets.QLabel(self.centralwidget)
110
+ self.label.setGeometry(QtCore.QRect(40, 60, 30, 16))
111
+ self.label.setObjectName("label")
112
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
113
+ self.label_2.setGeometry(QtCore.QRect(40, 90, 30, 16))
114
+ self.label_2.setObjectName("label_2")
115
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
116
+ self.label_3.setGeometry(QtCore.QRect(40, 120, 30, 16))
117
+ self.label_3.setObjectName("label_3")
118
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
119
+ self.label_4.setGeometry(QtCore.QRect(40, 150, 170, 30))
120
+ font = QtGui.QFont()
121
+ font.setPointSize(9)
122
+ self.label_4.setFont(font)
123
+ self.label_4.setObjectName("label_4")
124
+ MainWindow.setCentralWidget(self.centralwidget)
125
+ self.menubar = QtWidgets.QMenuBar(MainWindow)
126
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 256, 21))
127
+ self.menubar.setObjectName("menubar")
128
+ MainWindow.setMenuBar(self.menubar)
129
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
130
+ self.statusbar.setObjectName("statusbar")
131
+ MainWindow.setStatusBar(self.statusbar)
132
+
133
+ self.retranslateUi(MainWindow)
134
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
135
+
136
+ # イベントをフィルタ (監視) するウィジェットを設定する。
137
+ self.lineEdit1.installEventFilter(self)
138
+ self.lineEdit2.installEventFilter(self)
139
+ self.lineEdit3.installEventFilter(self)
140
+
141
+ def eventFilter(self, obj, event):
142
+ if event.type() == QEvent.FocusIn:
143
+ # フォーカスが移るイベントが発生した場合、
144
+ # イベントが発生したオブジェクトの名前をラベルに設定する。
145
+ self.label.setText(obj.objectName())
146
+
147
+ return super().eventFilter(obj, event)
148
+
149
+
150
+ def retranslateUi(self, MainWindow):
151
+ _translate = QtCore.QCoreApplication.translate
152
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
153
+ self.label.setText(_translate("MainWindow", "1番"))
154
+ self.label_2.setText(_translate("MainWindow", "2番"))
155
+ self.label_3.setText(_translate("MainWindow", "3番"))
156
+ self.label_4.setText(_translate("MainWindow", "カーソルがあるオブジェクト名を表示"))
157
+
158
+
159
+ if __name__ == "__main__":
160
+ import sys
161
+ app = QtWidgets.QApplication(sys.argv)
162
+ MainWindow = QtWidgets.QMainWindow()
163
+ ui = Ui_MainWindow()
164
+ ui.setupUi(MainWindow)
165
+ MainWindow.show()
166
+ sys.exit(app.exec_())
71
167
  ```

1

修正

2019/10/16 02:58

投稿

WMS
WMS

スコア37

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,7 @@
4
4
  マウスでクリックした際、下のラベルにクリックされたlineEditのオブジェクト名を表示させたいのですがやり方がわからずにいます。
5
5
  ご教授お願いいたします。
6
6
 
7
+
7
8
  ```python
8
9
  from PyQt5 import QtCore, QtGui, QtWidgets
9
10