簡體   English   中英

自定義Qt小部件

[英]Custom Qt Widget

如何創建一個包含小名,中間名和姓氏字段的簡單小部件,並將其添加到主窗口類中?

我問是因為我不知道為什么下面這個簡單的小部件嘗試不起作用,我錯過了什么?

主要

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);
}
QMainWindow *mainView = new QMainWindow;
//....
mainView->setLayout(hCard);

不應該更改QMainWindow布局。 使用setCentralWidget或使用給定的API添加工具欄/碼頭。

在這種情況下,您不應該將mainView創建為QMainWindow (在一個應用程序中不能有兩個窗口,對嗎?)。 您可以將mainView類型更改為QWidget ,但您甚至可以不創建任何代理窗口小部件,而只是

MainWindow::MainWindow(QWidget *parent); : QMainWindow(parent){   
    card = new CardUI;
    setCentralWidget(card);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM