2016-06-22 17 views
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() 

모든 아이디어를 어떻게 작동 초점을 얻을?

+1

당신이 "초점보기"무엇을 의미합니까 사용할 수 있습니까? 'QLabels'는 편집 할 수 없습니다. 일반적으로 위젯에 초점을 맞추어 키보드 입력을 받으면 사용자가 컨트롤을 편집하거나 트리거 할 수 있습니다 (예 :'QLIneEdit','QPushButton'). QLabel에 초점을 맞추는 이유는 무엇입니까? –

+0

QLabel은 그 예입니다. 사실 나는 ~ 1000 QCheckBox'es 있고 아래로 스크롤하고 특정 텍스트와 하나를 찾고 다음/체크 표시를 확인하는 것은 시간이 좀 걸립니다. 그래서 일부 텍스트를 삽입하고 아래로 스크롤하지 않고 해당 텍스트 확인란을 볼 수 있습니다. 귀하의 제안에 따라 WidgetVisible()이이를 수행합니다. 감사. –

답변

관련 문제