QT5中的QLabel类怎么定义?如何在一个窗口中定义多个QLabel?

2024-11-29 09:06:06
推荐回答(1个)
回答1:

原因是那个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:red;font-size:40px; color:blue");

Greeting = new QLabel(tr("Welcome"),this);

Greeting->resize(550,100);

Greeting->setStyleSheet("background-color:yellow;font-size:20px; color:blue");

mainLayout->addWidget(Title);

mainLayout->addWidget(Greeting);

this->centralWidget()->setLayout(mainLayout);
//++++++++

setWindowTitle(tr("校园导航系统"));

resize(550,600);
}