Setting focus on QlineEdit widget(将焦点放在 QlineEdit 小部件上)
问题描述
我正在尝试组合一个简单的小部件,其中焦点自动放在 QLineEdit 小部件上(它用于条形码扫描仪输入,我不希望最终用户必须单击小部件).
I am trying to put together a simple widget where the focus is automatically put to a QLineEdit widget (It is for a barcode scanner input, and I don't want the end users to have to click in the widget).
相关代码如下:
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 小部件上.我猜这是我错过的非常明显的东西,但我已经挖了一段时间试图找到它,但还没有偶然发现它.
And it doesn't want to put the focus on the lineEdit widget. I'm guessing its something really obvious that I've missed, but I've been digging around for a while trying to find it, and haven't stumbled upon it yet.
推荐答案
你必须使用 setFocus()
小部件显示后.
You must use setFocus()
after the widget is displayed.
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()
这篇关于将焦点放在 QlineEdit 小部件上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将焦点放在 QlineEdit 小部件上


基础教程推荐
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 包装空间模型 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 求两个直方图的卷积 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01