2011-01-24 7 views
4

Qtを使用してシンビアン用の古いJavaアプリケーションを書き直すことを主眼にしています。デザイナーに組み込まれたレイアウトに動的にウィジェット(QPushButtonなど)を追加する方法

まず、C++が私のkung-fuではないことを説明してください。これが問題の原因かもしれません。私がやろうとしています何

は、実行時にQTデザイナで構築されているメインウィンドウの縦レイアウトに簡単なのQPushButtonを追加することです。

私のコード例は、今私は最初のエラーは、とは何かを持って知っている次のように私は取得していますエラーがあり、このような何か...

QPushButton button = new QPushButton(); 

QString text("Testing Buttons"); 

button.setText(text); 

//How do we add children to this widget?? 

ui->myLayout->addWidget(button); 

...

/home/graham/myFirstApp/mainwindow.cpp:22: error: conversion from ‘QPushButton*’ to non-scalar type ‘QPushButton’ requested

/home/graham/myFirstApp/mainwindow.cpp:27: error: no matching function for call to ‘QVBoxLayout::addWidget(QPushButton&)’

/home/graham/myFirstApp/../qtsdk-2010.05/qt/include/QtGui/qboxlayout.h:85: candidates are: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment)

です私の混乱を解消し、優れたコード例を提供できる人がいるかどうかは分かりません。

ごあいさつ

グラハム

答えて

6

これは単なるC++の問題です。new-operatorを使用するときは、アスタリスクを使用してボタンをポインタとして宣言する必要があります。

QPushButton* button = new QPushButton(); 
button->setText(text); 
ui->myLayout->addWidget(button); 
+0

ありがとう、私はいくつかの変更を加え、いくつかの指針を読んだ。私はまた、役に立たなかったデスクトップのためにビルドした後、プロジェクトを掃除するのを忘れてしまったばかげたエラーもありました。 – Graham

2

QPushButton button = new QPushButton();

のQPushButtonへのポインタのQPushButtonありません。それはあなたのコンパイラが嫌なことだとあなたの問題です。

関連する問題