点击Widget对象中的button按钮之后在该Widget对象中增加一个button怎么实现?

walry_dudu 2015-10-19 10:46:54
MainWindow类中创建了一个Button对象,想通过点击这个对象在MainWindow中增加另外一个Button对象。
我的做法是首先在MainWindow类中声明要增加的Button对象,然后在槽函数中定义这个Button,设置父对象为MainWindow。运行之后,无现象。我是不是忽视了什么?还是方法压根就不对?
...全文
257 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
在飞的特拉斯 2015-10-22
  • 打赏
  • 举报
回复
引用 6 楼 walry_dudu 的回复:
[quote=引用 5 楼 mqdsg 的回复:] [quote=引用 4 楼 walry_dudu 的回复:] [quote=引用 3 楼 mqdsg 的回复:] 我的思路是 new button ,然后设置parent,最后show,试试呢
如果在构造函数中new再设置parent,新Button直接显示在parent上了,如果在槽函数里new Button,响应槽函数之后没什么变化。[/quote]

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    push = new QPushButton;

}

MainWindow::~MainWindow()
{
    delete ui;
}



void MainWindow::on_pushButton_clicked()
{
    push->setParent(this);
    push->move(0,0);
    push->resize(20,30);
    push->show();
}


正确的做法是在构造函数里面new,然后在on_pushButton_clicked()方法里面(或你的slot里面) setparent~[/quote] 果然可以,问题解决了。感谢[/quote] 结贴结贴
walry_dudu 2015-10-22
  • 打赏
  • 举报
回复
引用 5 楼 mqdsg 的回复:
[quote=引用 4 楼 walry_dudu 的回复:] [quote=引用 3 楼 mqdsg 的回复:] 我的思路是 new button ,然后设置parent,最后show,试试呢
如果在构造函数中new再设置parent,新Button直接显示在parent上了,如果在槽函数里new Button,响应槽函数之后没什么变化。[/quote]

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    push = new QPushButton;

}

MainWindow::~MainWindow()
{
    delete ui;
}



void MainWindow::on_pushButton_clicked()
{
    push->setParent(this);
    push->move(0,0);
    push->resize(20,30);
    push->show();
}


正确的做法是在构造函数里面new,然后在on_pushButton_clicked()方法里面(或你的slot里面) setparent~[/quote] 果然可以,问题解决了。感谢
在飞的特拉斯 2015-10-20
  • 打赏
  • 举报
回复
引用 4 楼 walry_dudu 的回复:
[quote=引用 3 楼 mqdsg 的回复:] 我的思路是 new button ,然后设置parent,最后show,试试呢
如果在构造函数中new再设置parent,新Button直接显示在parent上了,如果在槽函数里new Button,响应槽函数之后没什么变化。[/quote]

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    push = new QPushButton;

}

MainWindow::~MainWindow()
{
    delete ui;
}



void MainWindow::on_pushButton_clicked()
{
    push->setParent(this);
    push->move(0,0);
    push->resize(20,30);
    push->show();
}


正确的做法是在构造函数里面new,然后在on_pushButton_clicked()方法里面(或你的slot里面) setparent~
walry_dudu 2015-10-20
  • 打赏
  • 举报
回复
引用 3 楼 mqdsg 的回复:
我的思路是 new button ,然后设置parent,最后show,试试呢
如果在构造函数中new再设置parent,新Button直接显示在parent上了,如果在槽函数里new Button,响应槽函数之后没什么变化。
在飞的特拉斯 2015-10-20
  • 打赏
  • 举报
回复
我的思路是 new button ,然后设置parent,最后show,试试呢
gldcpp 2015-10-19
  • 打赏
  • 举报
回复
换一下button位置,是不是两个button位置重叠了?
walry_dudu 2015-10-19
  • 打赏
  • 举报
回复
引用 1 楼 gldcpp 的回复:
换一下button位置,是不是两个button位置重叠了?
我重新设置了新Button的位置,但是还不行,应该不是位置的问题。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧