2 dxy0829 dxy0829 于 2016.03.01 17:45 提问

qt中格子布局删除布局中的控件,行数未减少

//原先这个格子布局中有4个按钮,现在删除第一个的按钮,在最后以后添加一个按钮。
QLayoutItem* pDeleteItem(NULL);
pDeleteItem = m_pGridLayout->itemAt(0);
if(pDeleteItem != NULL)
{
QWidget* pWidget = pDeleteItem->widget();
m_pGridLayout->removeWidget(pWidget);
pWidget->setParent(NULL);
delete pWidget;
pWidget = NULL;
}

    QPushButton* pPushButton = new QPushButton(QString::number(m_iReplaceRow+1),ui->frame);
    if(pPushButton != NULL)
    {
        m_pGridLayout->addWidget(pPushButton,m_iReplaceRow,0);
    }
    qDebug()<<m_pGridLayout->rowCount();

1个回答

devmiao
devmiao   Ds   Rxr 2016.03.02 05:25
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Qt删除布局内的控件
基于某些原因,我们可能希望往一个布局内动态删除和添加新的元素,添加我们都能很清楚得看到addWidget这个接口.删除的话官方也有示例: QLayoutItem *child; while(child=this->ui->centralWidget->layout()->takeAt(0)) { delete child; }
Qt删除layout的控件
基于某些原因,我们可能希望往一个布局内动态删除和添加新的元素,添加我们都能很清楚得看到addWidget这个接口.删除的话官方也有示例: QLayoutItem *child; while(child=this->ui->centralWidget->layout()->takeAt(0)) { delete child; }
QLayout 动态布局(如何清空布局)
例子就是qtdemo里面的动态布局的例子,详细代码就不具体列出了,这里主要讲下如何清空布局,以及遇到的问题及其解决办法。 核心代码:  void Dialog::rotateWidgets()  {      Q_ASSERT(rotableWidgets.count() % 2 == 0);      foreach (QWidget *widget, rotableWidge
qt&nbsp;removeWidget(删除布局内…
//从布局中移除 m_hlayout->removeWidget(widget_to_remove); widget_to_remove->hide(); //展示新布局 m_hlayout->addWidget(widget_to_add); widget_to_add->show(); 参考: 零基础学Qt4编程之删除布局内窗口部件的方法 - qter_wd007的专栏 -
删除QGridLayout中的Widget
准备工作1.新建一个工程,然后删除mainwindow的ui,头文件和源文件。2.新建一个主窗口,布局如下: 3.新建一个窗口作为子窗口,用于动态加入到widgetGridLayout布局中。 代码实现实现AddWidget按钮槽函数void Form::on_btnAddWidget_clicked() { childWidget *widget = new childWidget
Qt栅格布局管理器(QGridLayout)
Example:Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { QGridLayout* layout = new QGridLayout(); QLabel* l1 = new QLabel("Name(N)"); QLineEdit* name = new QL
移除父控件的所有子控件
while (self.view.subviews.firstObject) { [self.view.subviews.firstObject removeFromSuperview]; } **//获取所有的子控件** for (UIView *view in self.view.subviews) { view.backgroundColor = [UI
Qt : 主窗口中添加布局和删除布局的问题.
1.主窗口添加布局. 都知道在QWidget中,进行布局很简单,直接类似如下即可: QPushButton *firstButton = new QPushButton(); QPushButton *secondButton = new QPushButton(); QPushButton *lastButton = new QPushButton(); /
QVBoxLayout移除控件之后没有消失
QVBoxlayout
pyqt5布局中删除控件
用pyqt5写一个项目,删除gridLayout布局中的控件时,发现单单用self.gridLayout.remove(i),i 为控件,发现控件并没有从布局中移除,网上找了好久终于找到了解决办法,需要先导入sip模块,在self.gridLayout.remove(i)语句后添加一行代码sip.delete(i)就可以了。这和Qt中用remove函数删除布局中的控件后,还需用delete指向该控...