更改 Qt 中的标签

2024-04-26

我正在尝试制作一个由按钮和标签组成的简单程序。当按下按钮时,它应该将标签文本更改为程序内 QString 变量中的任何内容。到目前为止,这是我的代码:

这是我的 widget.h 文件:

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::WidgetClass *ui;
    QString test;

private slots:
    void myclicked();
};

这是 Widget 类的实现:

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

Widget::Widget(QWidget *parent)
    : QWidget(parent), ui(new Ui::WidgetClass)
{
    ui->setupUi(this);
    test = "hello world";
    connect(ui->pushButton, SIGNAL(clicked()), ui->label, SLOT(myclicked()));
}

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

void Widget::myclicked(){
    ui->label->setText(test);
}

它运行,但单击按钮时没有任何反应。我究竟做错了什么?

编辑:在我开始工作后,标签中的文本比标签本身大,因此文本被剪切。我通过添加修复了它ui->label->adjustSize()到 myclicked() 的定义。


您将信号连接到错误的对象。 myclicked() 不是 QLabel 的插槽,它是 Widget 类的插槽。连接字符串应该是:

connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(myclicked()));

查看程序的控制台输出。应该有一条错误消息,内容如下:

将 clicked() 连接到时出错 myclicked():QLabel 中没有定义这样的槽

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Qt 中的标签 的相关文章

随机推荐