如何清除qt creator中的标签

How to clear a label in 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();
}

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

感谢大家,抱歉我的英语不好。

也许你应该试试

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

由于 QLabel 定义了插槽 void QLabel::clear(),您还可以使用 QObject::connect 方法将此插槽与单击按钮后将发出的 clicked() 信号连接起来:

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

编辑:这是一个小例子

UI 是一个具有 QLabel 和 QPushButton 的 QWidget。我用 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;
}

您甚至可以在 Qt Designer 中使用 "Edit Signals/Slots" 并在您的小部件之间建立 signal/slot 连接。 (你不需要手动调用前面的 QObject::connect,因为它会在 Ui_Widget class 中自动完成,由 uic 生成)

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