Qt中如何删除QSpacerItem 5C

QGroupbox中添加QVBoxLayout布局器,然后点击按钮,在槽函数中实现在QGroupbox中添加QCheckBox,然后再添加一个QSpacerItem,为的是让添加的多个QCheckBox集中在QGroupbox的顶部。问题是每次点击按钮都会添加QSpacerItem,打算每次点击按钮时候,在添加新的QCheckBox控件之前删除QSpacerItem,貌似没找到相应的删除QSpacerItem控件的函数。请问有什么解决方法可以实现多次点击按钮后添加的QCheckBox都集中在顶部?

3个回答

不用spaceritem 用 label代替,完美解决问题

把QSpacerItem的指针保存下来,调用removeItem(QLayoutItem *Item)。
因为QSpacerItem继承至QLayoutItem。
代码如下:


QSpacerItem *spacer_item = new QSpacerItem;
QVBoxLayout *lay = new QVBoxLayout();
lay->addSpacerItem( spacer_item );
lay->removeItem( spacer_item );

m0_37944991
MaoZ8 QSpacerItem *spacer_item = new QSpacerItem(100,100);//第一句要初始化宽和高
大约一年之前 回复

你是不是想要QCheckBox全部在顶部依次排列,下面用空白填充的效果。试试下面的代码:
{
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(new QCheckBox); // 你的checkbox
layout->addStretch(0); //加弹簧
layout->setSpacing(0); // 设置间距
layout->setContentsMargins(0, 0, 0, 0);
}

{
layout->insertWidget(0, new QCheckBox); //动态在指定位置插入新的checkbox
}

qq_41619025
即将人鱼线 可以 我寻找的大概就是这种插入布局 谢谢
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QSpacerItem 的删除问题
new了一个QSpacerItem的指针对象,但是在析构函数中释放时导致程序崩溃。不知道这个该怎么处理啊?
pyQT 弹簧(QSpacerItem)的功效
原始图像: 加入弹簧之后的效果图:   操作流程,就是在编码界面排版的时候简单加入了 QSpacerItem,就达到了理想的效果: self.spacerItem = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, ...
Qt中删除对象
Qt 的父一子对象机制是在 QOhject 中实现的。当利用一个父对象创建一个子对象(一个窗口部件,一个检验器,或是任意的其他类型)时,父对象会把这个子对象添加到自己的子对象列表中。当删除这个父对象时,它会遍历子对象列表并且删除每一个子对象。然后,这些子对象再去删除它们自己所包含的每个子对象。如此反复递归调用,直至清空所有子对象为止。这种父-子对象机制可在很大程度上简化内存管理工作,降低内存泄漏的风
QT中删除layout
清除layout里面的控件(控件的个数和名字不能确定),并删除layout。rn最好能有个例子
Qt布局管理(3):内容边距、间距和QSpacerItem类
Qt布局管理(3):内容边距(ContentsMargins)、间距(spacing)和QSpacerItem类 若对C++语法不熟悉可参阅《C++语法详解》一书,电子工业出版社出版 内容边距就是页边距,指的是布局中的各子部件(内容)与周围四个边的距离,内容边距比较简单,下面列出需要使用到的函数(内容边距默认情况下使用的是样式提供的值,在大多数平台上,默认为11像素) QMargins QLayo...
qt正则删除()及()中内容
参考:http://doc.qt.io/qt-5/qregularexpression.html 参考:http://blog.sina.com.cn/s/blog_a6fb6cc90102vo7n.html //实现1:替换()中内容  sOutputText = sPreOutputText.remove(QRegularExpression("\\([a-zA-Z\\*\\
windows下QT中如何删除tableview中的选中行
如题,纠结这个问题好久了,各位大神们给点意见。。。。。以下是函数代码rnvoid MainWindow::on_deleteButton_clicked()rnrn int curRow = ui->tableView->currentIndex().row();rnrn QModelIndex index = ui->tableView->currentIndex();rnrn int id=index.sibling(curRow,4).data().toInt();rnrnrn QSqlQuery query;rnrn query.prepare("delete from table where id =:id ");rnrn query.bindValue(":id",id);rn bool ok=query.exec();rn if(ok)rn rn qDebug()<<"delete success";rn rn elsern rn qDebug()<<"delete error"<
Qt中的QGraphicsScene中,删除部分图元
删除部分图元。在指定的矩形范围内的图元的删除。首先得到符合这个条件的图元指针列表。把这些图元移除,然后使用delete删除,释放内存。如下所示void CenterWidget::cmd_test_slot(void) { //获得指定矩形区域内的元素的指针列表 QList&amp;lt;QGraphicsItem *&amp;gt; item_list_p = view-&amp;gt;scene-&amp;g...
qt中删除tableview中的选中行
我的qt是在windows下的,鼠标单击tableview的选中行,然后点删除的pushbutton删不了,应该没有读取到数据库的数据
Qt中如何画图
我QSplitter分了几个窗口,但是现在想在其中一个窗口中画曲线图该怎么画呢?用QPaint显示不能插入Widget。rn用以下代码实现的曲线图是画在左上角的,rnrn如何调整位置?rn如何使其变得美观?rn是否有更好的画图方法?rnrn求大神指导。rnrnMainWindow::MainWindow()rnrn setWindowTitle(tr("uTYPE 3.0.0.40(RnD)(Trial version 358/365 days before expires)"));rn text2 = new QTextEdit(this);rn text3 = new QTextEdit(this);rn text4 = new QTextEdit(this);rnrn QTabWidget *tabWidget = new QTabWidget;rn tabWidget->addTab(new paint(Qt::green), "TabGreen");rn tabWidget->addTab(new paint(Qt::red), "TabRed");rn tabWidget->addTab(new paint(Qt::blue), "TabBlue");rn tabWidget->resize(500, 400);rnrn QTreeWidget* treeWidget = new QTreeWidget;rn tree(treeWidget);rn QTableWidget *tableWidget = new QTableWidget(20,5);rn table(tableWidget);rnrn QSplitter *leftSplitter = new QSplitter(Qt::Vertical);rn leftSplitter -> addWidget(treeWidget);rn leftSplitter -> addWidget(tableWidget);rn QSplitter *rightSplitter = new QSplitter(Qt::Vertical);rn rightSplitter -> addWidget(text2);rn rightSplitter -> addWidget(text3);rn rightSplitter -> addWidget(new paint(Qt::green));rn QSplitter *mainSplitter = new QSplitter(Qt::Horizontal);rn mainSplitter -> addWidget(leftSplitter);rn mainSplitter -> addWidget(rightSplitter);rn setCentralWidget(mainSplitter);rnrn createActions();rn createMenus();rn createToolBars();rnrnrnpaint::paint(QColor c)rnrncolor = c;rnrnrnvoid paint::paintEvent(QPaintEvent *event)rnrnrn QPainter painter(this);rn// painter.setRenderHint(QPainter::Antialiasing);rn// painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));rn painter.setPen(QPen(color));rn// painter.setBrush(QBrush(color, Qt::SolidPattern));rn for (int num1 = 0; num1 < 300; num1+=5)rn rn if(num1%2 == 0)rn rn painter.drawLine(num1, 50, num1+1, 0);rn rn elsern rn painter.drawLine(num1, 0, num1+1, 50);rn rn rn
QT中如何连接数据库?
请问:qt中如何连接数据库?最好能给个具体的操作步骤,谢谢!
qt中如何播放声音
1.安装madplay。用system("/../.."); 2.安装phonon,在命令行下输入sudo apt-get install libphonon-dev安装phonon就可以使用#include 文件了(不过在.pro必须包含QT += phonon这条语句)。 使用语句: Phonon::MediaObject *music = Phonon::createPlayer
qt如何把已绘制的图删除
我想实现一个动态图片显示。先显示了一个图片,但是后来要在原来绘图的地方重新绘制图片,应该如何做?rn我画图的代码如下:rnvoid Dialog::paintEvent(QPaintEvent *)rnrn QPainter painter(this);rnrn QPen pen; //画笔rn pen.setColor(QColor(255,0,0));rn QBrush brush(QColor(0,255,0,125)); //画刷rnrn painter.setPen(pen); //添加画笔rn painter.setBrush(brush); //添加画刷rn painter.drawRect(10,310,175,235); //绘制矩形 rnrn谢谢大家了!
Qt如何动态删除、添加控件?
描述:想在程序中动态的添加n行:行包括一个lineEdit输入框和一个Delete Button,rn而且button的操作为:删除其所在的行的lineEdit 和buttonrnrn我知道在Wpf中,通过重写ListBox的DataTemplate可以做到。。。刚开始学习Qt,多指教~~·
QT 删除只读文件
删除文件用 QFile::remove(filename);就ok了。   返回true 证明删除成功,返回false删除失败。 如果是只读的,就删除不了。 用 bool QFile :: setPermissions(const QString&fileName,QFileDevice :: Permissions 权限)函数设置文件的权限。 文件权限的详解: 这个枚举是在Qt 4.4中...
Qt删除 空格/空白符
QString str = " ad dfdsf ef okkd ikk"; str.remove(QRegExp("\\s")); qDebug()QRegExp("\\s")); "addfdsfefokkdikk" 还有去掉前后的空白符 Example: QString str = "  lots\t of\nwhitespace\r\
Qt动态删除
//m_gLayout->removeWidget(widget);     //delete widget;     //ui->widget->children(i);    int num = ui->m_gLayout->count();//获取gridLayout中item的数目     //(!num) return;     for(int i; i     QWidge
Qt删除TreeWidget节点
void OpenLiveSyncMainWindow::deleteItem(){ QTreeWidgetItem* item=ui-&gt;pluginTreeWidget-&gt;currentItem();//获得当前节点 if(NULL==item)//没有选择节点 return; QTreeWidgetItem* parent=item-&g...
Qt TreeView 删除某行
// 1. 查找待删除行 // Qt::MatchContains:查找的字符串包含在 item 中 // Qt::MatchRecursive:递归查找 QList&amp;lt;QStandardItem *&amp;gt; itemList = m_pStructModel-&amp;gt;findItems( QStringLi...
Qt删除大文件源码
Qt删除大文件源码,可依次删除多个文件或者单独特大文件,其效率高于计算机自带删除接口
郁闷!qterm和QT删除
真郁闷,pidgin无法上QQ,提示密码错误无法登录后,即去下载eva,configure出rn错如下:rnconfigure: error: Qt (>= Qt 3.1 (20021021)) (headers and libraries) notrnfound. Please check your installation!rnFor more details about this problem, look at the end of config.log.rn感觉是QT没有装的问题,于是下载QT,安装后再congigure还是出错。rpm -qa qt*rn后,检查出来以安装qt-3.3.4-15.5。rn我用的是FC4,提取出FC4里的所有QT,想重装,FC4里是QT-3.3.4-14,于是去卸载rn原来的QT,输入指令:rpm -e qt-3.3.4,错误如下:rnerror: Failed dependencies:rn libqt-mt.so.3 is needed by (installed) arts-1.4.0-1.i386rn libqt-mt.so.3 is needed by (installed) oprofile-0.8.2-4.i386rn我又以为是上述两个程序没有装的问题,于是安装上述两个程序,再次卸载,错误rn依旧。rn由于在下水平有限,请高手指点。rn补充,安装qterm错误也和eva一样。rnrn多谢!rn
Qt 文件拷贝 文件夹删除
CopyFileToPath(QString sourceDir, QString toDir, bool coverFileExist) { /*-----sourceDir目标文件路径 如"C:/text.txt" *-----toDir目标文件复制的位置 如"D:/text.txt" 表示将c盘根目录下的tetx.txt拷到D盘根目录下以text.txt命名 *-----如果D盘根目录
QT 之删除讨厌的 centralWidget
最近在学习qt简单的ui设计,当我新建一个项目的时候发现centralWidget不让我删除这就极大的干扰了我放置的控件的布局。比如我想放大至全屏可是因为有讨厌的centerWidget虽然页面放大了可是控件还是缩在角落,并没有随着页面的放大而移动。 所以要怎么搞掉这个家伙呢,经过我的探索终于发现 1. 在空白处右击出现下面这个框然后点击布局 2. 如下操作,点击
QT 删除子控件
使用delete maker时,偶尔会报错。使用marker-&gt;deleteLater()就ok了; QList&lt;CMapMarkerEx*&gt; tlist = this-&gt;findChildren&lt;CMapMarkerEx*&gt;(QString("mapMarker"), Qt::FindChildrenRecursively); foreach(CMapMa...
qt 删除窗口图标?
qt 中用什么函数删除窗口图标rn隐藏也可以!rnrn急急急急急急急急急急
关于使用QT在excel表格中删除图片
QAxObject *shapes = pWorksheet->querySubObject("Shapes");rnrn if( !shapes->isNull() )rn rn rnrn // 先选中一个空白的地方rnrnrn QString picDir=QString("D:\\test.png");rnrnrn shapes->dynamicCall("AddPicture( QString&, bool, bool, double, double, double, double)",picDir,true,true,x,y,length,width);//最后面四个参数意义分别是x坐标,y坐标,长度,宽度rnrnrn // QAxObject *range = pWorksheet->querySubObject("Range(QVariant)","$B$1:$D$1");rn // range->dynamicCall("Select(void)");rnrnrn rn rnrn现在已经通过设置参数插入图片,请问有没有办法,在dynamicCall中设置标记,进行图片删除,或者qt其他能在excel中删除图片的方法也可以 rn
QT QStringList中删除相同的一个元素
代码: void removeListSame(QStringList *list) { for (int i = 0; i &lt; list-&gt;count(); i++) { for (int k = i + 1; k &lt; list-&gt;count(); k++) { if ( list-&gt;at(...
Qt中删除重复的点坐
网上写的很多办法都是用unique函数和erase函数处理: vector v; v.append(0); v.append(1); v.append(2); for (int i = 0; i < 5; i++) { v.push_back(i); } sort(v.begin(),v.end()); v.
qt XML文件中node的删除方法
QDomElement  findnode = getElementById(root2,selNameStr);//找到需要删除的元素     QDomNode node = findnode.parentNode();//找到要删除元素的父节点     node.removeChild(findnode);//从父节点中删除元素
【QT小贴士】删除QListWidget中的某项
直接上代码 listWidget = new QListWidget(this); listWidget->addItem("123"); delete listWidget->takeItem(0);
QT 程序 删除文本文件中某一行
用qt 实现删除文本文件中一行,deleteonelineinfile&#40;int nNumLine, QString & filename&#41;;输入文件名和删除的行号可以删除。行号是0到行数减一。
QSpacerItem类及布局间隔操作示例简析
QSpacerItem类是Qt的一个布局操作类。它提供了布局中的空白空间。通常情况下,你不需要直接使用这个类。Qt内置的布局管理器提供以下函数来处理布局中的空白:     如QHBoxLayout中提供:addSpacing(), addStretch(), insertSpacing(), insertStretch()四种操作。QGridLayout布局中提供:setRowMinimumHei...
在字符串中,如何删除\
在字符串中,如何删除"\"
mysql中如何删除
有几个关于在mysql中删除的问题想要请教大家:rn1、比如要删除数据库中某一字段除了以A开头的所有记录,该如何操作rn2、如何删除数据库中的某一个表rn3、若要删除某一数据库,是否需要这一数据库中的所有表都为空表?
在linux命令行中如何删除?
在linux命令行中如何删除在本目录和其子目录的所有符合*.tmp的文件?
w2000中如何删除?
我如何在WIN2K中通过控制面板、管理工具、计算机管理、系统信息、系统工具、软件环境、启动程序删除不需要的选项。
QT中如何使用SSL?
我下好了openssl-1.0.0d,接下去怎么办?谁能讲得具体一点。谢谢。我的是qt4.7.
Qt中如何插入对话框
Qt中绘制的ui是不能直接用于程序中的,得先把它和一个类关联,然后通过类的对象来显示ui文件。 这里来通过一个小例子来说明一下,我的编译环境是Qt 5.4.1。题目要求是在MainWindow中加入一个菜单栏你的按钮,点击“它”打开一个对话框。 步骤1.添加新的ui。 给工程里添加一个对话框,对话框里的内容我们不关心,在生成的ui_dialog.h中,我们可以看到:namespace Ui
qt中如何嵌入word
在qt 多文档程序中如何嵌入word
Qt中如何实现悬浮窗?
Qt中如何实现悬浮窗?类似迅雷的那种?rn有什么思路吗?
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件