:-1: error: No rule to make target '../Image/off.jpg', needed by 'debug/qrc_resource.cpp'. Stop.
makefile中有这个文件,删除掉makefile
主窗口头文件
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
private:
Ui::MainWindow *ui;
AboutDialog *P_About;//网络参数窗口声明
public:
void rx_canshu_slots(QString);
注意添加子窗口头文件,
主窗口源文件
//处理子窗口带网络参数的信号
void(AboutDialog::*funSignal)(QString) = &AboutDialog::tx_canshu;
connect(P_About, funSignal,this,&MainWindow::rx_canshu_slots);
void MainWindow::rx_canshu_slots(QString data)//设置网络参数
{
myTime->stop();//断开定时器
QThread::msleep(500);//延时50ms
QByteArray sendBuf0 = " ";
sendBuf0 = QByteArray::fromHex (data.toLatin1().data());
tcpSocket->write(sendBuf0);
myTime->start();//开启定时器
}
子窗口头文件
signals:
void tx_canshu(QString); ////带网络参数的信号 只需声明,无需实现
子窗口源文件
在某处调用 emit tx_canshu(canshu_tx); //向主窗口传递参数
调用函数:
子窗口头文件:public: void setNet_num(QString data);
子窗口源文件:
void AboutDialog::setNet_num(QString data)
{
}
主窗口头文件:AboutDialog *P_About;//网络参数窗口声明,头文件要包含
主窗口源文件: P_About->setNet_num(str);
注意处理信号的函数或槽不能放到子窗口中,因为在非模态窗口只执行一次,并不会遍寻,这样程序就会崩掉,因为信号响应到主窗口中了,解决方法是开多线程,或者把信号就放在主窗口中,但是可以调用子窗口中的函数
定义全局变量要在函数外面定义
在.h文件下定义类
class main_flag{
public:
static int x;
}
在.cpp下定义
int main_flag::x=0;