0
我有一个QDialog
,它有多个QLineEdit
和QPushButton
小部件。 PySide突出了第一个QLineEdit
和第一个QPushButton
。如何避免在PySide中同时进行多重焦点?
我该如何让它专注于一件事?
我希望能够标签到QPushButton
。所以,关闭焦点并不是我想要的,因为这阻止了我能够进入按钮。
这里的问题的图像:
而这里的代码:
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-
from PySide.QtCore import *
from PySide.QtGui import *
class UI(object):
def setupUi(self, SessionInfo):
SessionInfo.setWindowTitle("Session Info")
# SessionInfo.resize(313, 159)
self.sessionLabel = QLabel(SessionInfo)
self.sessionLabel.setText("Session information:")
self.sessionId = QLineEdit(SessionInfo)
self.presetsLabel = QLabel(SessionInfo)
self.presetsLabel.setText("Presets:")
self.presetsButton = QPushButton(SessionInfo)
self.presetsButton.setText("Choose presets file")
self.saveButton = QPushButton(SessionInfo)
self.saveButton.setText("Begin session")
self.saveButton.setFocusPolicy(Qt.StrongFocus)
spacerItem = QSpacerItem(40, 20,
QSizePolicy.Expanding,
QSizePolicy.Minimum)
self.gridLayout = QGridLayout(SessionInfo)
self.gridLayout.addWidget(self.sessionLabel, 0, 0, 1, 1)
self.gridLayout.addWidget(self.sessionId, 0, 1, 1, 2)
self.gridLayout.addWidget(self.presetsLabel, 1, 0, 1, 1)
self.gridLayout.addWidget(self.presetsButton, 1, 1, 1, 2)
self.gridLayout.addItem(spacerItem, 2, 0, 1, 2)
self.gridLayout.addWidget(self.saveButton, 2, 2, 1, 1)
def main():
import sys
app = QApplication(sys.argv)
Dialog = QDialog()
sessionInfo = UI()
sessionInfo.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
我拉近默认()和正在改善的事情有点autoDefault(),但我还没有想还的行为。除了第一个LineEdit之外,我希望它首先突出显示任何内容,但当我选中某个按钮时,它应该相应地将突出显示移至该按钮。在任何地方关闭默认设置都会导致正确的初始条件,但在选中标签时没有突出显示按钮。 – Ubuntourist
可以分配按钮的对焦风格。您只需在删除对话框的默认按钮设置后设置自己的对焦风格。请看我的答案。 @Ubuntourist – yuhow5566