I need some help I need to set a layout for my application but i don't know how to set layout on QmainWindow..
here is a part of my code for the window.cpp:
window::window(QWidget *parent)
: QMainWindow(parent)
{
createFilesTable();
queryopen();
exitButton = createButton("E&xit",SLOT(programout()));
insertButton = createButton("&Add", SLOT(insert()));
editButton = createButton("&Edit", SLOT(edit()));
clearButton = createButton("&Clear", SLOT(clear()));
selectButton = createButton("&Select", SLOT(select()));
QHBoxLayout *buttonsLayout = new QHBoxLayout;
buttonsLayout->addStretch();
buttonsLayout->开发者_StackOverflow中文版addWidget(selectButton);
buttonsLayout->addWidget(insertButton);
buttonsLayout->addWidget(editButton);
buttonsLayout->addWidget(clearButton);
buttonsLayout->addWidget(exitButton);
txtid = new QLineEdit;
txtname = new QLineEdit;
txtdesc = new QLineEdit;
label1 = new QLabel("ID:");
label2 = new QLabel("Name:");
label3 = new QLabel("Description:");
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(label1,1,0,1,1);
mainLayout->addWidget(txtid,1,1,1,2);
mainLayout->addWidget(label2,2,0,1,1);
mainLayout->addWidget(txtname,2,1,1,3);
mainLayout->addWidget(label3,3,0,1,1);
mainLayout->addWidget(txtdesc,3,1,1,3);
mainLayout->addLayout(buttonsLayout,4,1,1,3);
mainLayout->addWidget(filesTable,6,0,6,5);
setLayout(mainLayout);
setWindowTitle("Database Connection");
resize(450,300);
}
For a QMainWindow, you use setCentralWidget(QWidget*), unlike all other QWidget subclasses.
The reason is that QMainWindow already has its own layout, which includes places for menu bar, status bar, dock windows, etc. So you create another QWidget and set its layout to the layout you want, then make that QWidget the central widget of the QMainWindow.
(This inconsistency has gotten me a few times ... but it makes sense once you understand what is going on.)
加载中,请稍侯......
精彩评论