【问题标题】:Setting focus on QlineEdit widget将焦点放在 QlineEdit 小部件上
【发布时间】:2018-08-31 07:33:43
【问题描述】:

我正在尝试组合一个简单的小部件,其中焦点自动放在 QLineEdit 小部件上(它用于条形码扫描仪输入,我不希望最终用户必须单击小部件)。

相关代码如下:

from qtmodern import styles, windows
from qtpy import QtGui, QtCore
from qtpy.QtWidgets import *
from qtpy.QtCore import Qt

class MyGui(QWidget):
    def __init__(self, parent=None):
        super(MyGui, self).__init__(parent)

        layout = QVBoxLayout()

        self.lineEdit = QLineEdit(self)
        self.lineEdit.setPlaceholderText('foobar')  
        self.lineEdit.setFocusPolicy(Qt.StrongFocus)      
        self.lineEdit.setFocus()

        layout.addWidget(self.lineEdit)

        self.setLayout(layout)
        self.show()

def main():
    app = QApplication([])
    styles.dark(app)

    g = windows.ModernWindow(MyGui())
    g.resize(350,100)
    location = (50, 100)
    g.move(location[0], location[1])
    g.setWindowTitle('SmallTest')

    g.show()
    app.exec_()

if __name__ == '__main__':
   main()

它不想将焦点放在 lineEdit 小部件上。我猜这是我错过的非常明显的东西,但我已经挖了一段时间试图找到它,但还没有偶然发现它。

【问题讨论】:

    标签: python pyqt pyqt5


    【解决方案1】:

    小部件显示后必须使用setFocus()

    from qtmodern import styles, windows
    from qtpy import QtGui, QtCore
    from qtpy.QtWidgets import *
    from qtpy.QtCore import Qt
    
    class MyGui(QWidget):
        def __init__(self, parent=None):
            super(MyGui, self).__init__(parent)
            layout = QVBoxLayout(self)
            self.lineEdit = QLineEdit(self)
            self.lineEdit.setPlaceholderText('foobar')  
            self.lineEdit.setFocusPolicy(Qt.StrongFocus)
            layout.addWidget(self.lineEdit)
    
    def main():
        app = QApplication([])
        styles.dark(app)
        gui = MyGui()
        g = windows.ModernWindow(gui)
        g.resize(350,100)
        location = (50, 100)
        g.move(*location)
        g.setWindowTitle('SmallTest')
        g.show()
        gui.lineEdit.setFocus()
        app.exec_()
    
    if __name__ == '__main__':
       main()
    

    【讨论】:

    • 太完美了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2014-04-05
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多