IQ120の口コミ

病院・鍼灸・整体等、八王子周辺のものをレビュー

PyQt5のQListWidgetでクリックイベントとか

   

QListWidgetでクリックした行の色変更と行番号取得がしたいだけなのに色々と手こずった。
日本語のドキュメント少なくない?
以下コード(全角インデント注意)。

from PyQt5 import QtGui
from PyQt5.QtWidgets import *

class pyqtGUI(QMainWindow):

 def __init__(self):
  super().__init__()

 def initUI(self, hoges):
  clist=QListWidget(self)
  clist.resize(400,800)
  clist.currentRowChanged.connect(self.listMove) #選択行が変わったらイベント
  clist.itemClicked.connect(self.listClicked) #クリックされたらイベント
  self.clist=clist
  for hoge in hoges:
   clist.addItem(hoge['title'])
  print(clist.item(1).text()) #item[1]じゃ取得できないから注意
  self.show()

 def listMove(self, item):
  print(item) #行番号しか送られないっぽい

 def listClicked(self, item):
  item.setBackground(QtGui.QColor('red')) #クリックされた行の色変更
  print(self.clist.currentRow()) #こっちは逆にitemから行番号が取得できないからこうした

やっぱGUI作るならC#が圧倒的じゃないですか?

adtes




 - プログラミング