首页| 论坛| 消息

标题:在主窗口的构造函数中添加QWidget等控件为什么显示不出来
作者:phyond
日期:2017-06-01 15:06
内容:

构造函数如下所示:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);
this->setWindowFlags (Qt::Window);
this->showFullScreen();
taishiback=new QWidget;
taishiback->setGeometry(0,0,800,600);
//taishiback->setAutoFillBackground(true);
//ui->verticalLayout->addWidget(taishi);
//taishiback->show();
//taishiback->setParent(this);

lab1=new QLabel;
lab1->setGeometry(0,1100,50,100);
lab1->setText("1234555");
lab1->setParent(this);
}
看很多例程中都使用了布局管理器,难道不使用就不能显示出来吗?还有哪里有问题?
如果说this没有添加新建的控件,那么应该用this的哪个成员函数?


#1 [littlebee 06-01 17:48]
LZ你这个写法不报错吗?
正确的应该这么写QWidget *taishiback=new QWidget(this);
#2 [笑颜 06-01 19:50]
setCentralWidget(),QMainWindow请设置窗口中心控件
#3 [大漠之鹰 06-01 20:58]
//taishiback->show();为什么要注释掉?
以前遇到过这种问题,加上show就会显示。注释掉怎么显示啊
看一下ui文件生成的那个ui_XXXXX.h文件,那里边也是调用了show函数的
#4 [phyond 06-02 09:21]
搞不出来,最后在界面上直接拖出来一个,可是这种方法又设置不了背景颜色, ,新手上路不容易阿
#5 [littlebee 06-02 11:01]
添加代码如下
QWidget *taishiback=new QWidget;
taishiback->setGeometry(420,370,320,30);
QPalette palette;
palette.setBrush(QPalette::Background,QBrush(Qt::red));
taishiback->setPalette(palette);
taishiback->setEnabled(true);
taishiback->setAutoFillBackground(true);
taishiback->setParent(this);
窗体右下角显示出来一块红色矩形patten

<< 1 2 >> (1/2)

回复 发表
主题 版块