首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >How to setFocus() on QListView in QFileDialog in PyQt5?

How to setFocus() on QListView in QFileDialog in PyQt5?
EN

Stack Overflow用户
提问于 2019-04-22 22:12:48
回答 1查看 332关注 0票数 0

我使用PyQt5制作了我的第一个小图形用户界面程序,用于我的工作中的一些数据处理。

我有一个问题-我不能让QFileDialog (打开文件)的焦点放在它的QListView小部件上。(在QFileDialog类中,默认情况下焦点在QLineEdit上)。

最好的解决方案是在更改了setFocus设置的情况下从QFileDialog创建新类,而其他所有设置都保持不变。事实证明,这并不容易,因为我不知道如何访问QFileDialog的内部小部件。

我是PyQt5的新手,即使是Qt C++也找不到任何解决方案。

感谢您的任何建议和想法。

代码语言:javascript
复制
  class XFileDialog(QtWidgets.QFileDialog):

       "magic code"


  file=XFileDialog.getOpenFileName(caption="Open",
                               filter="FITS (*.fits *.fts *.new)")
EN

回答 1

Stack Overflow用户

发布于 2019-05-02 05:32:54

看起来我已经找到解决方案了。也许这对某些人是有用的。

代码语言:javascript
复制
class XFileDialog(QtWidgets.QFileDialog):

    def __init__(self):
        QtWidgets.QFileDialog.__init__(self)
        self.setDirectory(progdir)

    def setVisible(self,v):

        super(XFileDialog, self).setVisible(v)
        self.setAcceptMode(0)
        self.setFileMode(1)
        self.setFocusPolicy(11)
        self.setNameFilter("All (*) ;; FITS (*.fts *.fits *.new)")
        self.focusPreviousChild()      


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

        self.initUI()

    def openFile(self):
        global progdir
        progdir=QtCore.QDir(os.getcwd())
        file=XFileDialog()
        file.exec()

.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55795777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档