Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将视图集中在QLabel上_Python_Pyside - Fatal编程技术网

Python 如何将视图集中在QLabel上

Python 如何将视图集中在QLabel上,python,pyside,Python,Pyside,我想找到带有特定文本的QLabel,并集中查看它。查找具有所需文本的小部件很容易,但我不知道如何将视图集中在它上面。 到目前为止,代码如下所示: import sys from PySide import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self): super().__init__() widget = QtGui.QWidget() se

我想找到带有特定文本的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()
有没有办法让焦点工作起来

您可以使用

你可以用


“焦点视图”是什么意思<代码>Qlabel不可编辑。您通常将焦点设置在小部件上,以便它接收键盘输入,用户可以编辑或触发控件(例如,
QLIneEdit
QPushButton
)。为什么要将焦点设置在
QLabel
?QLabel只是一个例子。实际上,我有1000个QCheckBox,向下滚动,寻找带有特定文本的QCheckBox,然后选中/取消选中它需要一些时间。所以我想插入一些文本,并且能够在不向下滚动的情况下看到带有该文本的复选框。您的建议确保RewidgetVisible()可以完成此操作。谢谢。你说的“焦点视图”是什么意思<代码>Qlabel不可编辑。您通常将焦点设置在小部件上,以便它接收键盘输入,用户可以编辑或触发控件(例如,
QLIneEdit
QPushButton
)。为什么要将焦点设置在
QLabel
?QLabel只是一个例子。实际上,我有1000个QCheckBox,向下滚动,寻找带有特定文本的QCheckBox,然后选中/取消选中它需要一些时间。所以我想插入一些文本,并且能够在不向下滚动的情况下看到带有该文本的复选框。您的建议确保RewidgetVisible()可以完成此操作。谢谢
self.scroll.ensureWidgetVisible(w)