.h
#include <QObject>
#include <QWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QPushButton>
class my_Widget : public QWidget
{
Q_OBJECT
QLabel *label;
bool flag;
public:
my_Widget(QWidget *parent = nullptr);
~my_Widget();
public slots:
void slots_trans();
};
.c
my_Widget::my_Widget(QWidget *parent)
: QWidget(parent)
{
this->setWindowTitle("hello");
this->resize(200,100);
label = new QLabel("你好,世界!");
flag = true;
QPushButton *button = new QPushButton;
button->setText("翻译");
label->setAlignment(Qt::AlignHCenter);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(label);
layout->addWidget(button);
connect(button,SIGNAL(cliked()),this,SLOT(slots_trans));
}
my_Widget::~my_Widget()
{
}
void my_Widget::slots_trans()
{
if(flag == true)
label->setText("Hello,World!");
else {
label->setText("你好,世界!");
}
flag = !flag;
}
同样的代码在 win 下可以运行,在 macos 下就会报错
QObject::connect: No such signal QPushButton::cliked() in ../PrintHello/my_widget.cpp:23
初学 qt,希望各位大佬能帮帮忙,谢谢
1
wbing 2019-10-27 18:01:40 +08:00 via iPhone 1
cliked 拼错了,是 clicked
|
2
contersion OP @wbing 非常感谢,clicked 我在 SIGNAL 不能自动补全,要手打,这是什么原因呢
|
3
luassuns 2019-10-27 23:13:00 +08:00 via iPhone
@contersion #2 你用的是 SINGAL()的写法编辑器估计不支持提示,你可以试试 button::clicked 会不会出提示。
|