这是我第一次在这个网站上写作,我试着在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();
}
如果有人知道该怎么做请回答,
感谢所有人并抱歉我的英语不好。
答案 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
类中自动完成)
或者你可以在没有Qt Designer的情况下完成所有工作,它取决于你。 希望这会有所帮助。