2017-09-06 16 views
2

QPushButtonを押したときに表示したいQLabelを作成しようとしています。コードは単純です:QLabelがプッシュボタンに関連付けられていません

void Mod28::on_pushButton_clicked() 
    { 
     AddItem(); 
    } 
    void Mod28::AddItem() 
    { 
     QLabel *label_n = new QLabel(this); 
     label_n->setObjectName(QStringLiteral("label_n")); 
     label_n->setGeometry(QRect(20, DimVert, 25, 17)); 
     label_n->setFrameShape(QFrame::Box); 
     label_n->setNum(ItemCounter); 
    } 

何も表示されません。代わりに、私がAddItem()を以下に入れれば、

Mod28::Mod28(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::Mod28) 
    { 
     ui->setupUi(this); 
     AddItem(); // here, for example, is ok !!!! 
    } 

どのように解決できますか?ボタンを押したときに表示されるQLabelが必要です。

+0

ラベルを 'QWidget'に追加します。 – aghilpro

+0

@aghilpro:詳細を教えてください。 – LittleSaints

+1

あなたのラベルがウィジェットのレイアウトに挿入されていないにもかかわらず、 'on_pushButton_clicked'が' QPushButton'のシグナルに実際に接続されていることをチェックしましたか? –

答えて

-1

は後label_n->show();label_n->raise();を呼び出すようにしてください。

3

表示するウィジェットにラベルを追加します。

例えばこの行はレイアウトをcentralWidgetするlable追加:

ui->centralWidget->layout()->addWidget(label_n); 

あなたの関数:

void Mod28::AddItem() 
{ 
    QLabel *label_n = new QLabel(this); 
    // 
    // 
    // 
    ui->centralWidget->layout()->addWidget(label_n); 
} 
+0

ありがとうございますが、まだ解決していません!最後の行: ui-> centralWidget-> layout() - > addWidget(label_n); クラッシュが発生し、プログラムが終了します... – LittleSaints

+0

あなたの中央ウィジェットはレイアウトを持たないと思います。デザイナーがフォームにレイアウト付きのウィジェットを追加し、ラベルを追加しようとします。 – aghilpro

関連する問題