标准信号和槽
—main.cpp如图所示,诸多的控件应该在主窗口中去实现而不应在主函数中实现
—改变编码
TOOLS—>options—>TextEditor—>behavor—>file coding 选择Utf-8—>apply—>OK
—设置控件
MainWdiget.h
private:
QPushButton b1;//对象
QPushButton *b2;//指针方式
QPushButton b3;
在MainWidget.cpp实现
b1.setParent(this);
b1.setText("close");
b1.move(100, 100);
b2 = new QPushButton(this);//注意指针需要动态分配空间,否则会发生段错误
b2->setText("abc");
至此可以在主窗口上显示两个按键
—实现点击b1就会关闭主窗口
如何查看一个类帮助文档:点击类名,按F1(按两次全屏显示帮助文档),如果没有发现signal,则去查看其基类(Inherits)的signals
QPushbutton帮助文档无信号,其基类的信号如图所示
b1.setParent(this);
b1.setText("close");
b1.move(100, 100);
connect(&b1, &QPushButton::pressed, this, &MainWidget::close);
/* &b1: 信号发出者,指针类型
* &QPushButton::pressed:处理的信号, &发送者的类名::信号名字
* this: 信号接收者
* &MainWidget::close: 槽函数,信号处理函数 &接收的类名::槽函数名字
*/
自定义槽
自定义槽的用法与普通函数的用法一样,Qt5中自定义槽可以是任意的成员函数,普通全局函数,静态函数。槽函数需要和信号一致(参数,返回值),信号是没有返回值的,故槽函数没有返回值
—通过点击b2将控件名字改变
connect(b2, &QPushButton::released, this, &MainWidget::mySlot);//b2是指针,不用取地址
写自定义槽函数时,一般写成共有的成员函数
MainWidget.h
void mySlot();//声明自定义槽函数
MainWidget.cpp
void MainWidget::mySlot()
{
b2->setText("123");
}
—通过点击抬起后b2使b1隐藏
MainWidget.cpp
connect(b2, &QPushButton::released, &b1, &QPushButton::hide);
—主窗口和 窗口切换
新建一个子窗口:
点击工程目录—&g