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

#include"mainwindow.h"#include<QLabel>#include<QWidget>#include<QVBoxLayout>MainWindo... #include "mainwindow.h"#include <QLabel>#include <QWidget>#include <QVBoxLayout>MainWindow::MainWindow(){ QVBoxLayout *mainLayout = new QVBoxLayout;
Title = new QLabel(this); Title->setText(tr("校园导航系统")); Title->resize(550,100); Title->setAlignment(Qt::AlignCenter); Title->setStyleSheet("background-color:red;font-size:40px; color:blue"); Greeting = new QLabel(tr("Welcome")); //Greeting->setText(tr("Welcome!")); Greeting->resize(550,100); Greeting->setStyleSheet("background-color:yellow;font-size:20px; color:blue"); mainLayout->addWidget(Title); mainLayout->addWidget(Greeting); setLayout(mainLayout); setWindowTitle(tr("校园导航系统")); resize(550,600);}MainWindow::~MainWindow(){}这样定义窗口中只会显示第一个QLabel的内容,不会显示第二个,怎么办。。。。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
sunnyfulin
推荐于2016-06-19 · TA获得超过465个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:189万
展开全部
原因是那个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);
}
追问

啊。。。为什么加上这句话程序崩溃了。。。

追答
事实上,我还改了你程序中的别的东西。。。
Title = new QLabel(tr("校园导航系统"),this);
Greeting = new QLabel(tr("Welcome"),this);
把这两句中的this都去掉,因为这两个label父对象不应该是mainwindow,(但是在我这里两种写法都没有问题。)

你仔细对照一下我的代码,看看别的改的地方然后在试试。看看会不会出问题,然后再问我。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式