[英]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.