标签: qfiledialog

如何设置目录分隔符以匹配操作系统?

我正在编写一个qt应用程序,其目标是可移植到3个主要操作系统.

我正在使用QFileDialog选择一个文件夹,然后将其添加到QListWidget.但是,即使我在Windows上,文件夹名称也将作为E:/ media返回.我希望它能返回E:\ media

我可以使用简单的字符串替换,但是在Linux/Mac上,使用\ home\user\Documents看起来很奇怪

我的代码如果有帮助:

void LibrariesForm::on_addButton_clicked()
{
    QString dir = QFileDialog::getExistingDirectory(this, tr("Select Folder"), "/", QFileDialog::ShowDirsOnly);

    if (dir.isNull() == true)
    {
        return;
    }

    ui->librariesList->addItem(new QListWidgetItem(dir, ui->librariesList, 0));
}
Run Code Online (Sandbox Code Playgroud)

qt qfiledialog

2
推荐指数
1
解决办法
6013
查看次数

选择文件夹后,QFileDialog :: getExistingDirectory不会关闭

在Qt,

QFileDialog *dlg = new QFileDialog(); 
QDir dir = dlg->getExistingDirectory(this, tr("Choose folder"), qgetenv("HOME"));
Run Code Online (Sandbox Code Playgroud)

打开文件夹选择对话框.选择文件夹后(按选择按钮),文件夹不会自动关闭.所以我尝试过:

if(dlg->close() == true) delete(dlg);
Run Code Online (Sandbox Code Playgroud)

当我调试dlg-> close()时返回true并且命中了删除代码(dlg).文件夹选择器对话框仍未关闭.

我正在使用Ubuntu 11.10 64位操作系统.使用存储库中的Qt库.

我的最终目的是显示文件夹选择器对话框,一旦选择了文件夹,对话框应该关闭.之后,处理应该继续.这该怎么做?

提前致谢.

qt qfiledialog

2
推荐指数
1
解决办法
2723
查看次数

QFileDialog - 如何指定主目录

我尝试了以下操作来打开一个文件对话框,该对话框应显示用户主目录:

QString fileName = QFileDialog::getOpenFileName(this,
                   tr("Select database"), QDir::homePath(), 
                   tr("Database Files (*.db *.sqlite)"));
Run Code Online (Sandbox Code Playgroud)

问题是QFileDialog总是从启动应用程序的目录开始.我有什么想法我做错了吗?

顺便说一句:我在Mac OS X上使用Qt 5.

qt qfiledialog

2
推荐指数
1
解决办法
6461
查看次数

在Qt中是否有一个本机"文件浏览器",我可以用它来让用户选择特定文件的路径?

我有一个小应用程序,需要通过特定文件的路径,该文件将由用户在运行时提供.我所需要的只是路径.我把它想象成某种形式的文件浏览器,用户可以在其中遍历目录树.

有没有办法在Qt中执行此操作,或者我必须调用本机OS实现(如果可行).如果不在Qt中,我该如何使用本地操作系统实现?

c c++ qt qtgui qfiledialog

2
推荐指数
1
解决办法
959
查看次数

Python PyQt Pyside - QFileDialog中的setNameFilters不起作用

(Windows 7 64位,PyCharm 3.4.1 Pro,Python 3.4.0,PySide 1.2.2)

我想用过滤器创建一个文件对话框并预选一个过滤器.

如果我使用静态方法,它可以工作,我可以使用过滤器并预先选择一个过滤器.

dir = self.sourceDir
filters = "Text files (*.txt);;Images (*.png *.xpm *.jpg)"
selected_filter = "Images (*.png *.xpm *.jpg)"
fileObj = QFileDialog.getOpenFileName(self, " File dialog ", dir, filters, selected_filter)
Run Code Online (Sandbox Code Playgroud)

如果我使用一个对象它不起作用,我的过滤器不存在.

file_dialog = QFileDialog(self)
file_dialog.setNameFilters("Text files (*.txt);;Images (*.png *.jpg)")
file_dialog.selectNameFilter("Images (*.png *.jpg)")
file_dialog.getOpenFileName() 
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

在此输入图像描述 在此输入图像描述

python pyqt pyside qfiledialog

2
推荐指数
1
解决办法
1万
查看次数

PyQt4 和 PyQt5 中的 QFileDialog 字符串有区别吗?

我有一段使用 Python3 和 PyQt5 打开 QFileDialog 的代码块:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFileDialog
import sys


class MCVE(QWidget):

    def __init__(self):
        super().__init__()
        self.initialize()

    def initialize(self):
        self.setWindowTitle('MCVE')
        self.setGeometry(50, 50, 400, 200)
        btn = QPushButton('Example', self)
        btn.clicked.connect(self.clicked)

        self.show()

    def clicked(self):
        filename = QFileDialog.getOpenFileName(
            self, "Open Template", "c:\\",
            "Templates (*.xml);;All Files (*.*)")

        print(filename)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MCVE()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

在使用 PyQt4 的 Python 2 中,按下取消按钮后 print(filename) 语句输出为空字符串。当我使用 PyQt5 在 Python 3 中运行相同的代码时,我得到:

('', '')

注意:引号是单引号

有人能解释一下发生了什么事吗?我在 PyQt4 和 PyQt5 …

python pyqt pyqt4 qfiledialog pyqt5

2
推荐指数
1
解决办法
1179
查看次数

python pyqt5 将文件名添加到 getSaveFileName

QFileDialog()我正在尝试为下面的图像添加默认名称。

这就是我得到的(没有文件名)

我得到什么

这就是我想要实现的目标,而无需手动输入它,我想传递file_name抛出的函数并让该名称显示在那里。 在此输入图像描述

这是我试图使其工作的代码:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5 import *
import sys
class mainwindowUI(QMainWindow):
    def __init__(self):
        super(mainwindowUI, self).__init__()
        self.exportFiles('test.mp3')
    def exportFiles(self,file_name):
        filename, _ = QFileDialog.getSaveFileName(self, "Save audio file", "", "Audio Files (*.mp3)")
        if filename:
            print(filename)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = mainwindowUI()
    app.exec_()
Run Code Online (Sandbox Code Playgroud)

我尝试添加选项:

filename, _ = QFileDialog.getSaveFileName(self, "Save audio file", "", "Audio Files (*.mp3)", options=QFileDialog.setLabelText(file_name))
Run Code Online (Sandbox Code Playgroud)

但这是不正确的,我不知道如何让它发挥作用......

有人知道如何在保存文件对话框中添加文件名吗?

python qfiledialog pyqt5

2
推荐指数
1
解决办法
7628
查看次数

为什么我无法将QAction SIGNAL与QFileDialog SLOT连接?

我正在尝试为我的文本编辑器编写应用程序菜单,但我不明白为什么信号triggered不起作用.它应该打开一个QFileDialog::getOpenFileName,但它不会发生.为什么?

main.cpp中

#include "mainwindow.h"
#include "centralwidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow      *mainWindow     = new MainWindow;
    CentralWidget   *centralWidget  = new CentralWidget;

    mainWindow->setCentralWidget(centralWidget);
    mainWindow->show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QStatusBar>
#include <QAction>
#include <QFileDialog>
#include <QString>

class MainWindow : public QMainWindow
{
public:
    MainWindow();

public slots:
    void slotFileDialog();
};

#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow()
{   
    QMenu *fileMenu = new …
Run Code Online (Sandbox Code Playgroud)

qt qfiledialog qaction

1
推荐指数
1
解决办法
819
查看次数

PySide 和 Python - 如何浏览文件夹并写入文件名?

我想按一个按钮,然后打开文件浏览器并在标签中记下所选文件。我有一个在按下按钮时调用的函数:

    @Slot()
    def browse_folder(self):
        self.fname = QtGui.QFileDialog.getOpenFileName()
        self.statusLabel.setText(self.fname)
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

TypeError: 'PySide.QtGui.QLabel.setText' called with wrong argument types:
  PySide.QtGui.QLabel.setText(unicode, unicode)
Supported signatures:
  PySide.QtGui.QLabel.setText(unicode)
Run Code Online (Sandbox Code Playgroud)

如何将self.fname保存选定文件名的 转换为 unicode?

python pyside qfiledialog

1
推荐指数
1
解决办法
7320
查看次数

如何解决 QFileDialog 的过滤参数问题?

我想使用QFileDialog创建一个文件对话框,以选择要在QMediaPlayer中设置的音频文件,并使用文件扩展名掩码(*.mp3, *.ogg, *.flac)。不幸的是,它不起作用,因为它应该将最后一个扩展作为过滤器属性。

我已经尝试过 PyQt5 和 PySide2,结果是相同的。它在过滤器列表中显示具有最新扩展名的文件,例如仅 *.mp3 或 *.flac

audioFormats = "*.mp3, *.wav, *.ogg, *.wma, *.flac"
print(f"these are formats: {audioFormats}")
self.track, _ = self.getOpenFileName(parent=self, caption="Set track file", filter=f"Audio files ({audioFormats})")
Run Code Online (Sandbox Code Playgroud)

我预计它会显示具有所有这些扩展名的文件。

python qfiledialog qmediaplayer pyqt5 pyside2

1
推荐指数
1
解决办法
979
查看次数

标签 统计

qfiledialog ×10

python ×5

qt ×5

pyqt5 ×3

pyqt ×2

pyside ×2

c ×1

c++ ×1

pyqt4 ×1

pyside2 ×1

qaction ×1

qmediaplayer ×1

qtgui ×1