当前位置: 代码迷 >> QT开发 >> 点击QToolPush显示26位键盘的有关问题
  详细解决方案

点击QToolPush显示26位键盘的有关问题

热度:393   发布时间:2016-04-25 02:51:47.0
点击QToolPush显示26位键盘的问题
我用QT设计师设计了一个keydoard快捷按钮,ObjectName 命名为keyboardfast。也
设计了一个如手机上的常见键盘的26位键盘,ObjectName 命名为keyboard。
我想要的效果就是点击keyboardfast按钮,其26位键盘的keyboard界面就显示出来。
我试过许多方法,但总是失败!
请问该怎么实现?
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

先debug一下看你的槽函数连接好了没有,如果连接好了看看是不是如上所说在底层看不到被遮掩了,最好把代码发出来看看


我怀疑可能就是不同的ui文件信号槽机制没有建立起来。

恕我愚钝,你这种一个文件加两个ui的做法我从来没用过--。。。通常你要的这种效果需要新建一个dialog,然后在dia的UI里编辑,最后通过emit信号在login里面接收来达到控制的效果


两个ui文件不能相互通信?点击主要窗口的pushbutton来显示另一个窗口实现起来很麻烦吗?

不麻烦啊  但是你这种直接两个ui的我真没用过,你在button的槽函数里直接把你做好的dialog show()出来就行了 很简单,可能我接触的太少,添加两个ui我是没见过的  
像这样--void MainWindow::Set_slot()
{
    setdia=new MyDialog(this);
//    setdia->setModal(true);
//    setdia->exec();
    setdia->show();
    connect(setdia,SIGNAL(sendrange(QString,QString)),this,SLOT(gettime(QString,QString)));
}
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

我把代码改了一下就成功了代码如下:
void login::on_pushButton_clicked()                         //pushButton为点击“键盘”的按键,其text属性也为“键盘”
{
     keyboard *showkeyboard = new keyboard();            //keyboard为26位键盘的类名
     showkeyboard->show();                                          //在这有个奇怪的问题,用show()可以,但是用raise()却不行                                 
}

在这谢谢各位的指导。@gldcpp @专注创业产品开发  @u013466477     

用raise()是因为怕界面被挡住,所以把想显示的放到上面,用raise()后,还是要用show()。


raise()和show()难道不是一样的吗?

额,不一样,rasie只是把控件放到最上面显示,防止被挡住
  相关解决方案