2015-05-26 2 views
3

Я новичок в QT. В настоящее время в моем проекте я реализовал QFileDialog.QFileDialog отмена

В моей usecase: всякий раз, когда пользователь выбирает текстовый файл, он выполняет functionA. Тем не менее, я обнаружил, что если я нажму «отменить» в файлеDialog, functionA все равно будет выполнен.

Это мой код snipplet:

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), 
                "/home", 
               tr("Text File (*.txt")); 

// I want something like following : 

if(QFileDialog.isOkButtonClicked) 
{ 
    // execute functionsA 
} 

Я посмотрел в QFileDialog документации и ничего не похож. Можно ли достичь этого или есть ли какое-либо другое решение? Благодарю.

+1

http://doc.qt.io/qt-5/qfiledialog.html#getOpenFileName Док говорит: «Это удобная статическая функция, которая возвращает существующий файл, выбранный пользователем. Если пользователь нажимает «Отмена», он возвращает пустую строку ». – AlexanderVX

+0

Спасибо за ответ @AlexanderVX. Я добавил 'if (! FileName.isEmpty() && fileName! =" ")' И он работает. Но я не уверен, что это значит, что ты знаешь? –

+0

Да. проверка для! filenName.isNull() сделаю. – AlexanderVX

ответ

4

благодаря AlexanderVX

решение простое:

if(!fileName.isEmpty()&& !fileName.isNull()){ 
// functionA 
} 
Смежные вопросы