如何清除qt创建者

时间:2017-05-17 20:57:22

标签: c++ string qt label qt-creator

这是我第一次在这个网站上写作,我试着在Qt-creator上接近我,但我遇到了一个问题: 我想在用户点击按钮时删除标签文字,我尝试了一些解决方案,但没有成功

这是代码:

struct finestra{
float costo;
int altezza;
int larghezza;
QString text;
QString costoStr;
};

float Totale=0;
finestra vet[21];
int i=1;

//SOME CODE

 Totale+=vet[i].costo;
 vet[i].costoStr = QString::number(vet[i].costo);
 vet[i].text = vet[i-1].text + "Finestra ad un anta bianca <br>" + "€" + vet[i].costoStr +"<br>";
 ui->TotaleFinestre->setText(QString(vet[i].text));
 i++;

我尝试过这个功能:

void preventivi::on_pushButton_clicked()
{
   ui->TotaleFinestre->clear();
}

如果有人知道该怎么做请回答,

感谢所有人并抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

也许你应该尝试

void preventivi::on_pushButton_clicked()
{
    ui->TotaleFinestre->setText("");
}

答案 1 :(得分:1)

当QLabel定义插槽void QLabel::clear()时,您也可以使用QObject::connect方法将此插槽与点击pushButton后发出的clicked()信号连接起来:

QObject::connect(pointer_to_your_pushButton, SIGNAL(clicked()), pointer_to_your_label, SLOT(clear()));

编辑:以下是一个小例子

UI是一个QWidget,它有一个QLabel和一个QPushButton。我是用Qt Designer做到的,但这并不重要。

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QObject::connect(ui->pushButton, SIGNAL(clicked()), ui->label, SLOT(clear()));
}

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

你甚至可以使用&#34;编辑信号/插槽&#34;在Qt Designer中,在小部件之间建立信号/插槽连接。 (你不需要手动调用以前的QObject :: connect,因为它将在由{ux生成的Ui_Widget类中自动完成)

enter image description here

或者你可以在没有Qt Designer的情况下完成所有工作,它取决于你。 希望这会有所帮助。