1
我想找到具有特定文本和焦點視圖的QLabel。用所需的文本查找小部件很容易,但我無法弄清楚如何將注意力集中在它上面。 到目前爲止的代碼看起來是這樣的:如何將焦點集中在QLabel上
import sys
from PySide import QtCore, QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super().__init__()
widget = QtGui.QWidget()
self.layout = QtGui.QGridLayout()
for i in range(10):
label = QtGui.QLabel("aaaa" + str(i))
self.layout.addWidget(label, i, 0)
widget.setLayout(self.layout)
self.toolbar = self.addToolBar("aa")
findAction = QtGui.QAction('Find', self)
findAction.triggered.connect(self.find)
self.toolbar.addAction(findAction)
self.scroll = QtGui.QScrollArea()
self.scroll.setWidget(widget)
self.scroll.setWidgetResizable(True)
self.setMaximumSize(200, 200)
self.setCentralWidget(self.scroll)
def find(self):
widgets = (self.layout.itemAt(i).widget() for i in range(self.layout.count()))
for w in widgets:
if isinstance(w, QtGui.QLabel):
if w.text() == "aaaa9":
w.setFocus()
def main():
app = QtGui.QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
app.exec_()
if __name__ == "__main__":
main()
任何想法如何獲得焦點的工作?
你所說的 「焦點圖」 意思? 'QLabels'不可編輯。您通常將焦點集中在一個小部件上,以便它接收鍵盤輸入,並且用戶可以編輯或觸發控件(例如'QLIneEdit','QPushButton')。你爲什麼要把重點放在'QLabel'上? –
QLabel就是一個例子。其實我有〜1000 QCheckBox'es和向下滾動,尋找具有特定文本的,然後檢查/取消選中它需要一些時間。所以我想插入一些文本,並能夠看到沒有向下滾動的文本複選框。您的建議ensureWidgetVisible()將做到這一點。謝謝。 –