嗨!老铁们我又回来了,优化个项目搞死我了,终于搞定了!!!
在这个项目中还是学了点东西的,我感觉比较重要的记下来跟大家分享,嘿嘿嘿。
一、背景:在多个界面下的每个label,LineEdit,后面添加删除按钮。
二、问题:添加了无数个按钮之后,点击按钮不知道是点击的哪个按钮
三、这时候就可以用到sender()函数了。
在new出按钮之后每个按钮绑定的槽函数里面用到:
QPushButton *btn=qobject_cast<QPushButton*>(sender());
这个btn就是当前你点击的按钮,就可以对它操作了。
四、result函数的背景:在点击按钮之后弹出一个新的界面,对原界面的QLabel,QLineEdit进行修改,新界面有确定,取消按钮,在点击确定按钮的时候进行保存的时候会用到result函数,点击取消不进行操作,
新界面ok按钮与cancel按钮的槽函数:
void NewWindows::slotOk()
{
this->accept();//返回值为1
this->close();
}
void NewWindows::slotCancel()
{
this->reject();//返回值为0
this->close();
}
在原来界面的按钮的槽函数中:
QPushButton *btn=qobject_cast<QPushButton*>(sender());
btn->newWindows = new NewWindows();
btn->newWindows->exec();//这里用的是exec函数才管用,我不知道show函数这里为什么不起效果,望知道的大佬告知。
if(btn->newWindows ->result() == 1)
{
.............//点击新窗口ok之后对原窗口的操作
}