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 и прокрутка вниз и поиск одного с определенным текстом, а затем проверка/снятие отметки занимает некоторое время. Поэтому я хочу вставить некоторый текст и уметь видеть флажок с этим текстом без прокрутки вниз. Ваше предложение гарантирует, чтоWidgetVisible() сделает это. Благодарю. –