【问题标题】:How to clear a label in qt creator如何清除qt creator中的标签
【发布时间】:2023-03-27 23:15:01
【问题描述】:

这是我第一次在这个网站上写作,我正在 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();
}

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

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

【问题讨论】:

  • 您是否检查过插槽是使用调试器还是简单的调试输出调用的?你如何建立联系?如果示例代码来自 UI 文件,可能您已重命名“pushButton”,则连接中断...

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


【解决方案1】:

也许你应该试试

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

【讨论】:

    【解决方案2】:

    由于 QLabel 定义了插槽 void QLabel::clear(),您也可以使用 QObject::connect 方法将此插槽与单击按钮后发出的 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;
    }
    

    您甚至可以使用 Qt Designer 中的“编辑信号/插槽”来做到这一点,并在小部件之间建立信号/插槽连接。 (您不需要手动调用之前的 QObject::connect,因为它会在 uic 生成的 Ui_Widget 类中自动完成)

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多