void setCentralWidget( QWidget* widget)
例如:我们在mainwindow中添加2个控件:QLabel 和QLineEdit:
cenWidget = new QWidget(this)//this is point to QMainWindow
setCentralWidget(cenWidget)
QHBoxLayout* H = new QHBoxLayout(cenWidget)
label = new QLabel(cenWidget)
lineEdit = new QLineEdit(cenWidget)
H->addWidget(label)
H->addWidget(label)
Question2:
原因是那个mainWindow本身就具有Layout了,这个Layout包含了顶部的菜单栏、工具栏,中部的centralWidget和底部的状态栏。
所以你不能再给mainwindow添加QVBoxLayout了,你只能给centralWidget添加layout。
只要将setLayout(mainLayout)
这一句改成:
this->centralWidget()->setLayout(mainLayout)就行了。
改过之后:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this)
QVBoxLayout *mainLayout = new QVBoxLayout
Title = new QLabel(tr("校园导航系统"),this)
Title->resize(550,100)
Title->setAlignment(Qt::AlignCenter)
Title->setStyleSheet("background-color:redfont-size:40pxcolor:blue")
Greeting = new QLabel(tr("Welcome"),this)
Greeting->resize(550,100)
Greeting->setStyleSheet("background-color:yellowfont-size:20pxcolor:blue")
mainLayout->addWidget(Title)
mainLayout->addWidget(Greeting)
this->centralWidget()->setLayout(mainLayout)
//++++++++
setWindowTitle(tr("校园导航系统"))
resize(550,600)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)