質問編集履歴

2

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

2019/10/16 02:58

投稿

WMS
WMS

スコア37

test CHANGED
File without changes
test CHANGED
@@ -139,3 +139,195 @@
139
139
 
140
140
 
141
141
  ```
142
+
143
+
144
+
145
+
146
+
147
+ その後、
148
+
149
+ ご教授頂いたソースを元にプログラムを修正しましたが
150
+
151
+ 「installEventFilter(self, QObject): argument 1 has unexpected type 'Ui_MainWindow'」
152
+
153
+ というエラーになり悩んでおります。
154
+
155
+
156
+
157
+ https://stackoverflow.com/questions/50768366/installeventfilter-in-pyqt5
158
+
159
+
160
+
161
+ 色々と調べて上記URLにたどり着き、QtDesignerで作成しているのが原因?
162
+
163
+ というところまでは何となく把握できたのですが、
164
+
165
+ どうプログラムを修正したらいいかわからずにいます。
166
+
167
+ 恐れ入ります、今一度ご教授頂けないでしょうか。
168
+
169
+ 以下、修正中のソースになります。
170
+
171
+
172
+
173
+
174
+
175
+ ```python
176
+
177
+ import sys
178
+
179
+ from PyQt5 import QtCore, QtGui, QtWidgets
180
+
181
+ from PyQt5.QtWidgets import *
182
+
183
+ from PyQt5.QtCore import *
184
+
185
+
186
+
187
+ class Ui_MainWindow(object):
188
+
189
+ def setupUi(self, MainWindow):
190
+
191
+ MainWindow.setObjectName("MainWindow")
192
+
193
+ MainWindow.resize(256, 267)
194
+
195
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
196
+
197
+ self.centralwidget.setObjectName("centralwidget")
198
+
199
+ self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
200
+
201
+ self.lineEdit1.setGeometry(QtCore.QRect(70, 60, 113, 20))
202
+
203
+ self.lineEdit1.setObjectName("lineEdit1")
204
+
205
+ self.lineEdit2 = QtWidgets.QLineEdit(self.centralwidget)
206
+
207
+ self.lineEdit2.setGeometry(QtCore.QRect(70, 90, 113, 20))
208
+
209
+ self.lineEdit2.setObjectName("lineEdit2")
210
+
211
+ self.lineEdit3 = QtWidgets.QLineEdit(self.centralwidget)
212
+
213
+ self.lineEdit3.setGeometry(QtCore.QRect(70, 120, 113, 20))
214
+
215
+ self.lineEdit3.setObjectName("lineEdit3")
216
+
217
+ self.label = QtWidgets.QLabel(self.centralwidget)
218
+
219
+ self.label.setGeometry(QtCore.QRect(40, 60, 30, 16))
220
+
221
+ self.label.setObjectName("label")
222
+
223
+ self.label_2 = QtWidgets.QLabel(self.centralwidget)
224
+
225
+ self.label_2.setGeometry(QtCore.QRect(40, 90, 30, 16))
226
+
227
+ self.label_2.setObjectName("label_2")
228
+
229
+ self.label_3 = QtWidgets.QLabel(self.centralwidget)
230
+
231
+ self.label_3.setGeometry(QtCore.QRect(40, 120, 30, 16))
232
+
233
+ self.label_3.setObjectName("label_3")
234
+
235
+ self.label_4 = QtWidgets.QLabel(self.centralwidget)
236
+
237
+ self.label_4.setGeometry(QtCore.QRect(40, 150, 170, 30))
238
+
239
+ font = QtGui.QFont()
240
+
241
+ font.setPointSize(9)
242
+
243
+ self.label_4.setFont(font)
244
+
245
+ self.label_4.setObjectName("label_4")
246
+
247
+ MainWindow.setCentralWidget(self.centralwidget)
248
+
249
+ self.menubar = QtWidgets.QMenuBar(MainWindow)
250
+
251
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 256, 21))
252
+
253
+ self.menubar.setObjectName("menubar")
254
+
255
+ MainWindow.setMenuBar(self.menubar)
256
+
257
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
258
+
259
+ self.statusbar.setObjectName("statusbar")
260
+
261
+ MainWindow.setStatusBar(self.statusbar)
262
+
263
+
264
+
265
+ self.retranslateUi(MainWindow)
266
+
267
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
268
+
269
+
270
+
271
+ # イベントをフィルタ (監視) するウィジェットを設定する。
272
+
273
+ self.lineEdit1.installEventFilter(self)
274
+
275
+ self.lineEdit2.installEventFilter(self)
276
+
277
+ self.lineEdit3.installEventFilter(self)
278
+
279
+
280
+
281
+ def eventFilter(self, obj, event):
282
+
283
+ if event.type() == QEvent.FocusIn:
284
+
285
+ # フォーカスが移るイベントが発生した場合、
286
+
287
+ # イベントが発生したオブジェクトの名前をラベルに設定する。
288
+
289
+ self.label.setText(obj.objectName())
290
+
291
+
292
+
293
+ return super().eventFilter(obj, event)
294
+
295
+
296
+
297
+
298
+
299
+ def retranslateUi(self, MainWindow):
300
+
301
+ _translate = QtCore.QCoreApplication.translate
302
+
303
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
304
+
305
+ self.label.setText(_translate("MainWindow", "1番"))
306
+
307
+ self.label_2.setText(_translate("MainWindow", "2番"))
308
+
309
+ self.label_3.setText(_translate("MainWindow", "3番"))
310
+
311
+ self.label_4.setText(_translate("MainWindow", "カーソルがあるオブジェクト名を表示"))
312
+
313
+
314
+
315
+
316
+
317
+ if __name__ == "__main__":
318
+
319
+ import sys
320
+
321
+ app = QtWidgets.QApplication(sys.argv)
322
+
323
+ MainWindow = QtWidgets.QMainWindow()
324
+
325
+ ui = Ui_MainWindow()
326
+
327
+ ui.setupUi(MainWindow)
328
+
329
+ MainWindow.show()
330
+
331
+ sys.exit(app.exec_())
332
+
333
+ ```

1

修正

2019/10/16 02:58

投稿

WMS
WMS

スコア37

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,8 @@
7
7
  マウスでクリックした際、下のラベルにクリックされたlineEditのオブジェクト名を表示させたいのですがやり方がわからずにいます。
8
8
 
9
9
  ご教授お願いいたします。
10
+
11
+
10
12
 
11
13
 
12
14