2011-12-16 7 views
1

QListWidgetにアイテムを追加していますが、QListQidgetからアイテムの詳細を取得できますが、新しいアイテムは決してスクリーンに表示されません。 QListWidgetを更新して新しいコンテンツを表示するように更新することはできますか?追加後にQListWidgetをリフレッシュできますか?

>>>myQListWidget.addItem("Hello") 
>>>print self.myQListWidget.item(0).text() 
Hello 

私はPythonでこれをやっていますが、あなたがC++のソリューションを持っていれば簡単に変換できます。

ありがとうございます!

- エリン

答えて

1

を貼り付けて、第二の機能は非同期であり、力がすぐに更新するウィジェット。しかし、QListWidgetは挿入後に余分な関数を呼び出さなくても自動的に更新されるはずです。そうでなければQtがペイントイベントを処理できないという問題があります。その後QCoreApplication::processEvents()に電話しなければならないが、それがあなたの問題であるかどうかわからない。

0

うーん...私はその動作を見ていません。

import sys 
from PyQt4 import QtCore 
from PyQt4 import QtGui 
a = QtGui.QApplication(sys.argv) 
w = QtGui.QListWidget() 
w.setWindowTitle('example') 
w.show() 
w.addItem("test 1")   # shows up 
w.addItem("test 2")   # also shows up 

EDIT:削除しました山形あなたがupdate()またはrepaint()を呼び出すことにより、ウィジェットのビューを更新することができ、コードをコピーすることができます/

+0

私は小さなテストケースを使用することができ、ウィジェットはその情報を正しく表示します。より複雑な設定では、その動作はもはや期待どおりに動作していませんが、残念ながら私はその事例を投稿することはできません。ウィジェットは情報があることをはっきりと知っていますが、表示していません。ウィジェットを強制的に表示または更新する方法はわかりますか? –

+0

@Erin:メインイベントループの実行を許可していますか? – jkerian

関連する問題