【问题标题】:Trying to use QFileDialog in pyQT6 to OPEN a file, but it keeps giving me the Save dialog尝试在 pyQT6 中使用 QFileDialog 打开文件,但它一直给我保存对话框
【发布时间】:2023-02-05 19:51:26
【问题描述】:

我试图在 PyQT6 中使用 QFileDialog 打开一个文件,但它一直给我保存对话框,所以当我选择一个文件时,它会询问我是否要覆盖它。 我在这里做错了什么?

from PyQt6.QtWidgets import QMainWindow, QApplication, QPushButton, QLabel, QFileDialog
from PyQt6 import uic
import sys

fname = QFileDialog.getOpenFileName(
    self,
    "Open File",
    "c:\\gui\\images",
    "All Files (*);;Python Files (*.py);; PNG Files (*.png)",
)

【问题讨论】:

  • 可能是一个错误,但我们需要比您提供的内容更全面的上下文,因此:1.请提供实际的minimal reproducible example,任何人都可以复制、粘贴和运行而无需任何实质性修改,因为现在您的代码肯定会引发异常(并且有不必要的导入); 2. 添加更多关于您的操作系统、PyQt 和 Qt 版本的详细信息(注意:PyQt 和 Qt 版本不不是始终匹配);

标签: python pyqt6


【解决方案1】:

您的问题可能出在代码的其他地方,下次请添加更多信息。


这是一个简单的工作示例:

from PyQt6.QtWidgets import QMainWindow, QApplication, QPushButton, QFileDialog
from PyQt6.QtCore import pyqtSlot
import sys


class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        btn = QPushButton(self)
        btn.setText("Open file dialog")
        self.setCentralWidget(btn)
        btn.clicked.connect(self.open_dialog)
    
    @pyqtSlot()
    def open_dialog(self):
        fname = QFileDialog.getOpenFileName(
            self,
            "Open File",
            "${HOME}",
            "All Files (*);; Python Files (*.py);; PNG Files (*.png)",
        )
        print(fname)
        
    
if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_gui = Main()
    main_gui.show()
    sys.exit(app.exec())

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多