[英]Custom Qt Widget
How do I create a simple widget that would contain a first, middle and last name field and add it to the main window class? 如何创建一个包含小名,中间名和姓氏字段的简单小部件,并将其添加到主窗口类中?
I ask because I cant figure out why is this simple widget attempt below is not working, what have I missed? 我问是因为我不知道为什么下面这个简单的小部件尝试不起作用,我错过了什么?
main 主要
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainWindow class 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 class 卡迪班
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);
You should not change layout of QMainWindow
. 您不应该更改
QMainWindow
布局。 Use setCentralWidget
or add toolbars/docks using given API instead. 使用
setCentralWidget
或使用给定的API添加工具栏/码头。
In this particular case you shouldn't create mainView
as QMainWindow
(you cannot have two main windows in one application, right?). 在这种情况下,您不应该将
mainView
创建为QMainWindow
(在一个应用程序中不能有两个主窗口,对吗?)。 You can change mainView
type to QWidget
, but you can even don't create any proxy widgets, and just 您可以将
mainView
类型更改为QWidget
,但您甚至可以不创建任何代理窗口小部件,而只是
MainWindow::MainWindow(QWidget *parent); : QMainWindow(parent){
card = new CardUI;
setCentralWidget(card);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.