qt笔记
qt笔记
沐飞QPushButton
添加QPushButton.h
创建一个对象 QPushButton *btn = new QPushButton
设置窗口大小:不固定resize()
:固定 setFixedSize();
设置窗口标题:setWindowTitle()
移动窗口 btn->move();
设置内容: setText();
设置父类,包含:setParent();
connnet(信号发送者,发送的信号(地址),信号的接收者(this),处理的槽函数(地址))
自定义信号和槽
创建两个类
一个信号类(要写在singal下 要声明不用实现),一个接收类(写在public或slot下 要声明要实现)
用指针建立对象
connect 调用
用emit 函数触发 meit zt->func();
connect 可以信号连接信号
自定义信号带参数的要用函数指针
void (Person:: *p)(QString) = &Person::hungary;
disconnect 断开连接
信号参数可以多余槽 类型要匹配
参数一对一的时候类型要一样
qt4之前connect的写法 —-不推荐
connect(zt,SINGAL(hungary()),st,SOLT(treat));
优点:直观 缺点:类型不做检测:槽的参数多余信号的参数不会报错
Lambda匿名函数 5.4之前 CONFIG +=c++11;
v{
btn->setText();
}();后面那个括号不加是声明,加上是函数
v可以 不填, 填 = , &, 所在函数的变量
QPushButton *mybtn = new QPushButton(this);
QPushButton *mybtn2 = new QPushButton(this);
mybtn2->move (100,100);
int m=10;
connect (mybtn,&QPushButton::clicked,this,[m]()mutable{m=100+10;qDebug()<<m;});
connect (mybtn2,&QPushButton::clicked,this,[=](){qDebug()<<m;});
mutable 可以改变拷贝的值,但不改变本身
int ret = []()->int{return 1000;}();
用->int 告诉编译器所返回的类型
QMainWindow
//创建菜单栏 最多一个
QMenuBar *bar=menuBar();
//将菜单栏放入窗口中
setMenuBar(bar);
//创建菜单
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
//创建菜单项 可以和工具栏的共用
QAction *newAction =fileMenu->addAction("新建");
//添加分隔符
fileMenu->addSeparator();
QAction *openAction= fileMenu->addAction("打开");
//设置工具栏初始位置
addToolBar(Qt::LeftToolBarArea,toolBar);
//允许的位置
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//是否浮动
toolBar->setFloatable(false);
//是否可以移动
toolBar->setMovable(true);
//往工具栏中添加文本 与菜单栏的可以共用
toolBar->addAction(newAction);
//也可以添加分割线
toolBar->addSeparator();
toolBar->addAction(openAction);
//往工具栏里添加按钮
QPushButton *btn = new QPushButton("add",this);
toolBar->addWidget(btn);
#QT
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果