如何创建一个包含first,middle和last name字段的简单窗口小部件并将其添加到主窗口类?
我问,因为我无法弄清楚为什么下面这个简单的小部件尝试不起作用,我错过了什么?
主
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::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);
}
答案 0 :(得分:1)
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);
}