大侠们,又来麻烦你们了。
我做一个
播放器,用libvlc和qt设计的。基本功能做好以后,我就想添加一个
网络接收
部分。
主框架在一个libvlc-on-qt.h和libvlc-on-qt.cpp中。
主框架是Player,udp地址输入框架是UdpInputDlg;菜单栏里面有一个选项是接收网络流,当点击它的时候,会弹出另外一个控件
界面,用来输入广播地址和端口号,QAction如下:
void Player::udpSetAddressSlot()
479 {
480 UdpInputDlg udpDlg;//广播Ip地址和端口号输入控件。
481
QString udp_mrl;
482 udpDlg.exec();
483 bool ok=true;
484 while(ok)
485 {
486 if(udpDlg.addrChanged==true)
487 {
488 udpAddrString=udpDlg.ipString;
489 udpPortNum=udpDlg.portNum;
490 ok=false;
491 break;
492 }
493 }
...........
play(udp_mrl);//Player中的public函数,播放功能
.............
}
UdpInputDlg控件的slot如下,当按下ok键时,读取地址和端口,并且设置更改标志。
void UdpInputDlg::slotOkButton()
72 {
73 if(ipChanged)
74 ipString=ipAddrLabel->text();
75 if(portChanged)
76 portNum=portLine->value();
77 addrChanged=true;
78
79 close();//关闭
80
81 }
82
83 void UdpInputDlg::slotCancelButton()
84 {
85 addrChanged=false;
86
87 close();//关闭
88 }
图示
结构如下:



中间那个小框框就是UdpInputDlg输入控件。
每次我点击确定之后,该控件关闭,然后主界面上的
其他按键就无法动弹了,点击关闭
按钮也不会响应。
我想请教大家,是不是两个控件发生冲突了?