存在しないフォルダ/ファイルの問題を解決するには、次のようにします。
いくつかの変数が必要です:
QString path_trunk;
QString name;
ボタンによって呼び出されているスロットでは、パラメータを調整して、要求に合うようにする必要があります。たとえば、ボタンを介して受け継がれるパラメータや、いくつかの内部イベントによって操作されるパラメータを使用できます。その場合、もちろん、変数を使用して動的にフォルダーを作成できます。
path_trunk = QString("/home/username/");
name = QString("Folder_name");
QDir(path_trunk).mkdir(name);
もう1つの、よりユーザーフレンドリーな方法は、ユーザーがカスタムパスを入力できるようにする行/テキスト編集要素を介してUIから値をフェッチすることです。UIクラスを介して値を読み取ることができます(ここでは、標準のQT名uiを使用しました)。別の名前を選択した場合は、lineEditという名前が異なる場合があります。ただし、それでもデータにアクセスして、基になるコードでidを動的に使用することができます。信号とメソッドを正しく接続してください。
void MainWindow::on_pushButton_clicked_path_dynamic()
{
QString temp_path = ui->lineEdit->text();
QDir().mkdir(temp_path);
}
void MainWindow::on_pushButton_clicked_trunk_plus_dynamic()
{
QString ext_path = ui->lineEdit->text();
QDir(path_trunk).mkdir(ext_path);
}
私の理解では、ある種のファイルマネージャを使用したいので、別のアプローチを次に示します。
実際にできることは、独自のファイルマネージャーウィジェットを作成することです。QDirメソッドは基本的に、フォルダを表示するために必要なすべての情報を提供します。一部のファイルでItem-based QTreeWidget
は、QTreeWidgetのシグナルとスロットを使用してナビゲートできるため、ナビゲーションも簡単な作業になります。ツリーにフォルダー情報を入力するだけで済みます。新しいフォルダの作成は、ユーザーの操作(マウスの右ボタンまたはカスタムファイルマネージャウィジェットのQPushButton「フォルダの作成」をクリック)のみになります。