2016-06-21 21 views
0

これは私の最初の質問であり、私は非常に苦労しています。私は、excentric表示のためのソフトウェアを作成するためにQtを使用しています。このプロジェクトを以前に学生グループが行っていたので、あらかじめ作成したコードを使って作業しました。"QWidget *"の引数1から "QGroupBox *"への変換は不可能

私の問題は次のとおりです。 私は通常の方法でコーディングしていません、私はQDesignerを使用します。私は内部にいくつかのQGroupBoxを収めたいスクロールエリアを持っています。他のいくつかのボックスを垂直レイアウトで保持する "Properties"という名前の一般的なボックスがあります。

ここでは、いずれかのボックスを「symbolgen」と呼び、カスタムクラス「SymbolGen」を使用しています。クラスは以下のように定義されます:

class SymbolGen : public QGroupBox 

ここで私がしたいのは、 "プロパティ"ボックスからアレルボックスを抽出することです。つまり、「プロパティ」グループを「プロパティ」というラベルで置き換え、小さなボックスで下に置きたいと思います。今、何Qtが私に言うことは、次のとおりです。

Fehler: C2664: "SymbolGen::SymbolGen(const SymbolGen &)" : Konvertierung von Argument 1 von "QWidget *" in "QGroupBox *" nicht m”glich 

はい、私は英語で、ドイツ午前:私はここを参照してください何

Error: C2664: "SymbolGen::SymbolGen(const SymbolGen &)" : Conversion from argument 1 of "QWidget *" to "QGroupBox *" not possible. 

は、この特定のグループボックス「symbolgenは」(一部を保持していること、ですクラス内の重要な変数)は、の別のグループボックスが必要です。どうすればこのボックスを間違いなく区切ることができますか?

ありがとうございました!

編集:このエラーが発生します//ライン:この1は "ui_admin.h" で発見され

symbolgen = new SymbolGen(scrollAreaWidgetContents_2); 

編集:

scrollAreaWidgetContents_2 = new QWidget(); 
scrollAreaWidgetContents_2->setObjectName(QStringLiteral("scrollAreaWidgetContents_2")); 
scrollAreaWidgetContents_2->setGeometry(QRect(0, 0, 503, 851)); 

編集:// SymbolGen :: SymbolGen(定数SymbolGen &): "ui_admin.h" から "scrollAreaWidgetContents_2" の//定義

SymbolGen::SymbolGen(QGroupBox *g) : QGroupBox(g) 
{ 
    srand (time(NULL)); 

    //Wörterquelle lesen 

    std::ifstream f("source/ngerman.txt"); 
    std::string l; 
    if(f.is_open()) 
    { 
     while(f.good()) 
     { 
      getline(f,l); 
      words.push_back(l); 
      //if(words.size() > 10000) break; 
     } 
    } 
    f.close(); 

    //Satzquelle lesen 
    std::ifstream fs("source/sentences.txt"); 
    //std::string l; 
    if(fs.is_open()) 
    { 
     while(fs.good()) 
     { 
      getline(fs,l); 
      phrase.push_back(l); 
      //if(words.size() > 10000) break; 
     } 
    } 
    fs.close(); 
} 
+1

また、エラーの原因となる行を投稿することはできますか? –

+0

もちろん、メインポストに追加します。 –

+0

今、 'SymbolGen'のコピーコンストラクタの内部でエラーが発生したのか、このコピーコンストラクタを呼び出すのだろうかと思います。しかし、コピーコンストラクタの引数は明らかに 'QGroupBox *'型ではないので、後者は実際には意味がありません。 'SymbolGen :: SymbolGen(const SymbolGen&)'の内容を投稿できますか? –

答えて

2

それはそうですgは親ウィジェットで、コンストラクタQGroupBoxに渡され、QGroupBox *ではなくQWidget *型である必要があります。

QGroupBoxコンストラクタには、とにかくQWidget*が必要であるため、宣言でこれを変更できます。これがこのように行われた理由があるかもしれないので、クラスは親がグループボックスであるという事実に頼るかもしれません。それでも、私はそれを変更して何が起こるかを見ようとします。

関連する問題