我正在制作一个Qt应用程序,我有一个按钮来打开一个连接到自定义插槽的文件.这是到目前为止的插槽代码:
void MainWindow::file_dialog() {
const QFileDialog *fd;
const QString filename = fd->getOpenFileName();
}
Run Code Online (Sandbox Code Playgroud)
我怎么能拥有它然后将文件名转换为a const char *,打开文件,读取它并将文本存储在QString中,然后关闭文件.我正在使用Qt4.
pyqt中的FileDialog是从用户获取文件的一个路径的绝佳方法,但是有一种很好的方法可以从用户那里获取大量文件吗?
在我的程序中,我有一个按钮,打开一个getOpenFileName对话框,如下所示:
path = QFileDialog::getOpenFileName(this, tr("Select region"), "%APPDATA%", tr("region file"));
Run Code Online (Sandbox Code Playgroud)
我希望对话框默认为用户AppData文件夹.所有用户都在运行Windows(XP或更高版本).我如何确保默认为AppData?
谢谢.:)
每当我在QFileDialog中选择一个文件时,accepted都会触发信号并关闭窗口.我想保持窗口打开,这样我就可以选择多个文件,然后捕获点击"打开"时触发的信号.
QFileDialog* myDialog = new QFileDialog(this);
myDialog->setFileMode(QFileDialog::ExistingFiles);
myDialog->setVisible(true);
Run Code Online (Sandbox Code Playgroud)
我应该在这里连接什么信号才能达到这个效果?
如何将最新选择的目录设置为QFileDialog中的默认目录?
这是我的代码:
void MainWindow::save(){
QString fileName = QFileDialog::getSaveFileName(this, tr("Save Text File"), path, tr("Text Files (*.txt)"));
if (fileName != "")
{
QFileInfo info(fileName);
path = info.absoluteDir().absolutePath();
QFile file(path);
if(!file.open(QIODevice::WriteOnly)){
QString text = ui->plainTextEdit->toPlainText();
QTextStream out(&file);
out << text ;
file.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是在单击pushButton后它不会创建任何.txt文件:
connect(ui->saveButton, SIGNAL(clicked(bool)), this, SLOT(save()));
Run Code Online (Sandbox Code Playgroud)
日志:
QIODevice::write (QFile, "C:\Users\kfg\Desktop"): device not open
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 :)
需要一些有关如何检索所选文件夹的目录路径并将其设置在 LineEdit 上的建议。
如果我单击工具按钮(红圈内的按钮),则会弹出一个对话框窗口。然后我们可以导航以选择所需的文件夹。我希望一旦用户单击“选择文件夹”,我就可以将所选文件夹的路径(以字符串形式)传递到按钮旁边的 lineEdit 框。但是,我无法弄清楚如何做到这一点。到目前为止,这是我的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_TestQFileDialog(object):
def _open_file_dialog(self): # a function to open the dialog window
result = str(QtWidgets.QFileDialog.getExistingDirectory())
print(result)
return result
def setupUi(self, TestQFileDialog):
TestQFileDialog.setObjectName("TestQFileDialog")
TestQFileDialog.resize(240, 320)
self.toolButtonOpenDialog = QtWidgets.QToolButton(TestQFileDialog)
self.toolButtonOpenDialog.setGeometry(QtCore.QRect(210, 10, 25, 19))
self.toolButtonOpenDialog.setObjectName("toolButtonOpenDialog")
directory = self.toolButtonOpenDialog.clicked.connect(self._open_file_dialog)
self.lineEdit = QtWidgets.QLineEdit(TestQFileDialog)
self.lineEdit.setEnabled(False)
self.lineEdit.setGeometry(QtCore.QRect(10, 10, 191, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit.setText('{}'.format(directory))
self.retranslateUi(TestQFileDialog)
QtCore.QMetaObject.connectSlotsByName(TestQFileDialog)
def retranslateUi(self, TestQFileDialog):
_translate = QtCore.QCoreApplication.translate
TestQFileDialog.setWindowTitle(_translate("TestQFileDialog", "Dialog"))
self.toolButtonOpenDialog.setText(_translate("TestQFileDialog", "..."))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv) …Run Code Online (Sandbox Code Playgroud) qfiledialog ×7
c++ ×4
qt ×4
directory ×2
appdata ×1
file-io ×1
pyqt ×1
pyqt4 ×1
pyqt5 ×1
python ×1
python-3.x ×1
qfile ×1
qstring ×1
qt4 ×1
qtextstream ×1