void QDlgLogin::mousePressEvent(QMouseEvent* event) 一个splash窗口
{
if (event->button() == Qt::LeftButton)
{
m_moving = true; //鼠标按下
m_lastPos = event->globalPos() - pos(); //鼠标上一次位置
}
return QDialog::mousePressEvent(event);
}
void QDlgLogin::mouseMoveEvent(QMouseEvent* event)
{
if (m_moving && (event->button() && Qt::LeftButton) && (event->globalPos() - m_lastPos).manhattanLength() > QApplication::startDragDistance())
{
move(event->globalPos() - m_lastPos);
m_lastPos = event->globalPos() - pos();
}
return QDialog::mouseMoveEvent(event);
}
void QDlgLogin::mouseReleaseEvent(QMouseEvent* event)
{
m_moving = false;
}
大佬们,为什么我用鼠标不能拖动对话框窗口啊
这个,QDlgLogin类似乎是从QDialog类继承的,检查下重写这些事件处理程序的代码的类中忘记将其实例化为QDlgLogin。或在QDialog的setMouseTracking(true)方法下是否启用鼠标跟踪功能。
还有,对话框窗口被锁定而无法拖动。需要检查对话框属性是否设置为无边框、最大化、最小化以及窗口锁定等
编译代码,生成可执行程序。注意Debug和Release的区别。
Debug我们称调试版本,编译链接生成程序时,包含了调试信息,程序的体积比较大。
调试程序比较方便,但是运行时,没有Release版本快。通常在开发程序时,选择Debug
模式。
Release我们称发布版本,编译链接生成程序时,不包含调试信息,编译器也会对代码优化,
程序的体积比较小。由于没有调试信息,所以在调试程序时不方便,但是运行的速度快。
通常开发完成后,生成Release版本交付用户使用。
首先启动Server端(被控端),注意设置它的屏幕分辨率为1024*768。启动后,看到Server端的IP地址。然后从client目录中查找client.ini文件,拷贝到解决方案下面的debug目录下,也就是说和client.exe同一目录下,修改该文件中的IP地址为Server端地址。启动客户端,点击 "截屏"按钮,然后在客户端就可以控制Server端了。
项目描述
远程控制系统是一个典型的C/S架构系统,功能类似于windows自带的远程连接和QQ上
的远程协助。具体实现时,使用的是TCP通信。TCP服务器端作为被控端首先启动,在
指定的端口监听,等待客户端连接。TCP客户端作为控制端启动后,连接服务器。连接后,
服务器将屏幕数据发送到客户端,在客户端的视图客户区显示;用户在客户端操作键盘或
鼠标,产生键盘/鼠标的消息。把该消息的数据发送给服务器,服务器收到后,调用相关的
API函数,执行键盘/鼠标的消息的处理。