qt焦点左右键切换问题,求大神指导!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt焦点左右键切换问题,求大神指导!!相关的知识,希望对你有一定的参考价值。
现在是这样的,假如说我的光标在状态通道一的地方,我现在按下键是改变里面的数值,但是我现在想按右键切换到右边的同一行的通道二的地方,现在我按右键是切换到通道一的下一列(就是转到了电荷处,那个地方)。
而且,我还想选定之后通过切换上下键的时候,不会修改我当前的值。
line_edit_1->installEventFilter(this);
line_edit_2->installEventFilter(this);
bool LoginDialog::eventFilter(QObject *obj, QEvent *event)
if(obj == line_edit_1 || obj == line_edit_2)
if(event->type() == QEvent::KeyPress)
bool is_focus_1 = line_edit_1->hasFocus();
bool is_focus_2 = line_edit_2->hasFocus();
//将事件转化为键盘事件
QKeyEvent *key_event = static_cast<QKeyEvent *>(event);
if(key_event->key() == Qt::Key_Right)
if(is_focus_1)
focusNextChild();
line_edit_2->setFocus();
因为Qt本身的一些控件是有上、下、左、右,包括:Tab等 一些按键的事件,所以得屏蔽以后,自己实现! 参考技术A 从写状态通道1的右键事键,当状态通道1右键按下的时候,emit一个信号带当前index参数,你想在哪里接这个信号就在哪里接,比如这个信号在通道2的关闭接收,在关联槽的时候,获得鼠标。大概思路也就这样,你理一下!
c语言socket通信问题,小弟菜鸟,求大神指导下,谢谢
SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0);
if(CreateSocketToServer(sockClient))//已正确创建套接字
if(ConnectToServer(sockClient,flag))//已正确连到服务器
CString sendInfo,recvInfo;
sendInfo="Hello,Sever "+name+" "+passwd+"\n
if(SendInfoToServer(sockClient,sendInfo,flag))//已向服务器发送验证数据
cout<<"向服务器发送用户名和密码:"<<sendInfo<<endl;
recvInfo=RecvInfoFromServer(sockClient,flag);
MessageBox("接收到信息为:"+recvInfo);
if(recvInfo!="false")//得到服务器确认信息
cout<<"客户端接收到服务器响应:"<<recvInfo<<endl;
while(连接服务器成功)
/*我想在得到服务器的确认消息后,新建一个线程与服务端进行通信,但是while的判断
*语句条件是该socket连接仍然存在,但是我百度了下,都说socket不能使用两次connect,
* 那我这里应该怎么判断呢,谢谢各位...
*/
CloseSocketToServer(sockClient);
恩,我明白你的意思了,我还有个问题,就是当程序运行过connect后,继续运行send操作后,这时我断开服务端后,应该是服务断开了呀,应该是接不到什么了,为什么客户端还会接受到一个空消息呢
追答这是windows socket机制的问题,在windows下是返回一个空消息,在linux下是返回-1 但是在arm下,如果你断开了,但你没有判断就直接recv,那就会提示你段错误了
追问非常感谢你的热心,还有个问题想问下哈,我将开始创建的socketClient传递到新建的线程中,在线程中新建了一个自己写的socket类的对象,使用该对象的SendInfoToServer(sockClient,sendInfo,flag)与服务器进行通信,想着同一个socketClient,为什么程序会报错socket error 10038即没有建立socket,这是怎么回事呢
追答你是怎么传进去的,可能是你的传递方式有问题
追问百度这里字数有限制,我给你发了百度的私信了,呵呵,帮我看下,实在是麻烦你了。。。。
追答回你了
追问谢谢你,哈哈,问题解决了,谢谢,学长....,同时谢谢以下各位的回答,真心感谢....
参考技术A 我不明白你为什么要用while。。。用if就可以了啊。。把SOCEKET的套接字传到线程里面,继续用这个套接字做通信接口,完成你的业务逻辑。追问恩,我刚把它改成if了,,我还有个问题,就是当程序运行过connect后,继续运行send操作后,这时我断开服务端后,应该是服务断开了呀,应该是接不到什么了,为什么客户端还会接受到一个空消息呢
追答空消息?你是说你发送了密码以后收到一个空消息?还是你发送全部完成以后closesocket以后收到一个空消息?
追问感谢你哦,呵呵》。。。
参考技术B 把while也挪到新线程中去。以上是关于qt焦点左右键切换问题,求大神指导!!的主要内容,如果未能解决你的问题,请参考以下文章
python selenium webdriver frame切换问题,求大神指导一下,感谢。