Я пытаюсь сделать простую программу, состоящую из кнопки и метки. Когда кнопка нажата, она должна изменить текст метки на то, что находится в переменной 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 ().