查看完整版本: [-- 在主窗口的构造函数中添加QWidget等控件为什么显示不出来 --]

QTCN开发网 -> Qt基础编程 -> 在主窗口的构造函数中添加QWidget等控件为什么显示不出来 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

phyond 2017-06-01 15:06

在主窗口的构造函数中添加QWidget等控件为什么显示不出来

构造函数如下所示:
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的哪个成员函数?


littlebee 2017-06-01 17:48
LZ你这个写法不报错吗?
正确的应该这么写QWidget *taishiback=new QWidget(this);

笑颜 2017-06-01 19:50
setCentralWidget(),QMainWindow请设置窗口中心控件

大漠之鹰 2017-06-01 20:58
    //taishiback->show();为什么要注释掉?
以前遇到过这种问题,加上show就会显示。注释掉怎么显示啊
看一下ui文件生成的那个ui_XXXXX.h文件,那里边也是调用了show函数的

phyond 2017-06-02 09:21
搞不出来,最后在界面上直接拖出来一个,可是这种方法又设置不了背景颜色, ,新手上路不容易阿

littlebee 2017-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

littlebee 2017-06-02 11:03
phyond:搞不出来,最后在界面上直接拖出来一个,可是这种方法又设置不了背景颜色,[表情] ,新手上路不容易阿 (2017-06-02 09:21) 

同是新手,一起加油!

dosmlp 2017-06-02 17:17
不添加布局器容易被其他控件挡住,自然就看不到了


查看完整版本: [-- 在主窗口的构造函数中添加QWidget等控件为什么显示不出来 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled