QtでQStringList変数をグローバルに宣言して、任意の関数でアクセスできるようにする方法
これは問題ではありませんQt
が、一般的なC ++のものです(最近ではグローバル変数が嫌われています。より受け入れられる同等のものはシングルトンです。SOで多くの例を検索してください)。それでも、これを行う1つの方法は、QStringList
をインスタンス化するクラスの静的メンバーとして作成するQFileDialog
ことです。同じクラスは、とにかくダイアログからそれを取得したクラスになり、静的に保存(および返す)することで、効果的にグローバルにします。 :
class A
{
public:
void openFileDialog() { // Open the dialog, and store the results in list_. }
static const QStringList& getFileList() { return list_; }
private:
static list_;
}
// Just call by:
QStringList list = A::getFileList();
QStringList内のすべてのものを印刷する方法(QFileDialogから取得したファイルパスが含まれています)
はい、QStringListには1つの文字列しか含まれていません
QStringList
文字列が1つしかない場合は、次を使用してください。
ui->lineEdit->setText(list_[0]);
QStringList
aはから派生しているので、他の要素と同じようQVector< QString >
に個々のにアクセスできることを忘れないでください。QString
最初の質問を拡張するために、文字列のリストを1つのリストに組み合わせる方法は無数にあります。しかし、非常に一般的な(そして簡単な)方法QStringList
は、以下を使用することjoin()
です。
QStringList list; list << "This" << "is" << "a" << "list.";
list.join( " " ); // "This is a list. "
私は本当にドキュメントを使用することをお勧めします、Qtは素晴らしいです。