1

名、ミドルネーム、姓のフィールドを含む単純なウィジェットを作成し、それをメイン ウィンドウ クラスに追加するにはどうすればよいですか?

以下のこの単純なウィジェットの試みが機能しない理由がわからないので、私は尋ねます。何が見逃したのですか?

主要

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainWindow クラス

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){
    QMainWindow *mainView = new QMainWindow;
    setCentralWidget(mainView);

    CardUI *card = new CardUI;
    QHBoxLayout *hCard = new QHBoxLayout;

    hCard->addWidget(card);

    mainView->setLayout(hCard);
    mainView->show();
}

カルドゥイクラス

CardUI::CardUI(QWidget *parent) :  QWidget(parent){
    QLineEdit *fnText = new QLineEdit;
    QLineEdit *miText = new QLineEdit;
    QLineEdit *lnText = new QLineEdit;

    QHBoxLayout *name = new QHBoxLayout;

    name->addWidget(fnText);
    name->addWidget(miText);
    name->addWidget(lnText);

    setLayout(name);
}
4

1 に答える 1

1
QMainWindow *mainView = new QMainWindow;
//....
mainView->setLayout(hCard);

のレイアウトを変更しないでくださいQMainWindow。代わりに、特定の API を使用してツールバー/ドックを使用setCentralWidgetまたは追加します。

この特定のケースでは、mainViewas を作成するべきではありません ( 1 つのアプリケーションで2 つのメインウィンドウをQMainWindow持つことはできませんよね?)。type をに変更することはできますが、プロキシ ウィジェットを作成することさえできず、mainViewQWidget

MainWindow::MainWindow(QWidget *parent); : QMainWindow(parent){   
    card = new CardUI;
    setCentralWidget(card);
}
于 2012-08-08T20:16:08.703 に答える