私は C++ の経験があまりなく、まだ学習中であり、重要な詳細を忘れ続けているため、他のコードや例を理解したり、追加のライブラリを使用したりするのが難しくなっています。また、学校の課題のために、Qt の操作方法を学ばなければなりません。そのため、次の行コードに直面した例を理解しようとしています。
クラスFileDialog
は、次のようにヘッダー ファイルで宣言されます。
class FileDialog : public QMainWindow
{
Q_OBJECT
public:
FileDialog(QWidget *parent = 0);
~FileDialog();
private slots:
void changeDirectory();
void fillList();
private:
Ui::FileDialogClass* ui;
QDir directory;
};
メイン ファイルではない他のソース .cpp ファイルでは、クラスのコンストラクターは次のように入力されます。
FileDialog::FileDialog(QWidget *parent)
: QMainWindow(parent), ui(new Ui::FileDialogClass), directory("/")
{
ui->setupUi(this);dir
setWindowTitle("Changing Directory");
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(changeDirectory()));
fillList();
}
ここで、私はその線についてよくわかりません
FileDialog::FileDialog(QWidget *parent)
: QMainWindow(parent), ui(new Ui::FileDialogClass), directory("/")
は型クラスなFileDialog::FileDialog(QWidget *parent) : QMainWindow(parent)
ので書いたと思いますよね?しかし、なぜ追加するのでしょうか? が string で渡される理由も説明してください。プログラムがディレクトリとファイルをどのように理解するかについてのヒントを与えるためですか?FileDialog
QMainWindow
ui(new Ui::FileDialogClass), directory("/")
directory()
"/"
また、他の 2 つの関数がどのように機能changeDirectory
し、fillList
満たされているかを追加する必要があります。
void FileDialog::changeDirectory()
{
QString path = QFileDialog::getExistingDirectory(this, tr("Directory"), directory.path());
if ( path.isNull() == false )
{
directory.setPath(path);
fillList();
}
}
void FileDialog::fillList()
{
ui->listWidget->clear();
ui->listWidget->addItems(directory.entryList());
}
可能であればtr()
、上記のコードで関数がどのように機能しているかを説明してください。ドキュメントを読んでみましたが、かなり理解しています:(。私の質問が非常にばかげていても気にしないでください。どうもありがとう。