• 13357阅读
  • 10回复

请问qt的widget如何隐藏标题栏,但是要保留边框 [复制链接]

上一主题 下一主题
离线txwhhny
 

只看楼主 正序阅读 楼主  发表于: 2011-11-22
如题。。。就是在QLineEdit获得焦点是,弹出一个输入的面板,这个面板隐藏标题栏,不允许拖动,但是要保留着边框,请问如何实现呢。
还有就是QLineEdit,我用的是cursorPositionChanged()事件,因为找不到获取焦点的事件,但是总感觉不合适,网上有人说可以通过重写QLineEdit,来自己实现focusInEvent(),但是我那些控件是在ui文件上面设计好的,ui文件编译出来的是QLineEdit类型的,能否在ui文件使用重写过QLineEdit的类呢。
离线jdwx

只看该作者 10楼 发表于: 2011-11-22
构造函数里添加:m_Edit->installEventFilter(this);






bool Widget::eventFilter(QObject *obj, QEvent *e)
{
    if(obj == m_Edit)
    {
        if(e->type() == QEvent::FocusIn)
        {
                      // do......
        }
    }
    return QWidget::eventFilter(obj,e);
}
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线txwhhny

只看该作者 9楼 发表于: 2011-11-22
回 8楼(jdwx) 的帖子
可以了。。谢谢哈
离线jdwx

只看该作者 8楼 发表于: 2011-11-22
回 6楼(txwhhny) 的帖子
简单例子:
附件: windowFrame.rar (2 K) 下载次数:27
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线txwhhny

只看该作者 7楼 发表于: 2011-11-22
回 5楼(nannan) 的帖子
我用   MouseButtonRelease,不然其他的好像都触发了多次
if (ev->type() == QEvent::MouseButtonRelease)
    {
        // .....
        return true;
    }
    return false;
这样行不
我调用这函数QWidget::eventFilter(target,event);
出现段错误,不知为什么
离线txwhhny

只看该作者 6楼 发表于: 2011-11-22
回 4楼(jdwx) 的帖子
能给几句代码参考下不,谢谢
离线nannan
只看该作者 5楼 发表于: 2011-11-22
一般,不是监视focusinevent ,而是用

    if(ui->lineEdit==target)
        if(event->type()==QEvent::MouseButtonPress)
        {
        emit slideup();
    }
    return QWidget::eventFilter(target,event);

lineedit 的,按钮,点击事件,就可以了。
离线jdwx

只看该作者 4楼 发表于: 2011-11-22
回 3楼(txwhhny) 的帖子
画边框就在窗口的painterEvent里面画,想怎么画就怎么画,不好看就改,多画几次就会了。
具体思路,要看你要什么样的边框?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线txwhhny

只看该作者 3楼 发表于: 2011-11-22
回 2楼(jdwx) 的帖子
这位同学,谢谢你的提示,我才知道事件监视器,我是新手。。呵呵。
画边框的话,能否给个思路呢。。谢谢
离线jdwx

只看该作者 2楼 发表于: 2011-11-22
回 楼主(txwhhny) 的帖子
要监控QLineEdit房focusInEvent()可以安装事件监视器,不用继承QLineEdit。
至于隐藏标题栏,窗口就没有了边框,自己画一个边框吧。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dbzhang800

只看该作者 1楼 发表于: 2011-11-22
引用楼主txwhhny于2011-11-22 08:49发表的 请问qt的widget如何隐藏标题栏,但是要保留边框 :
隐藏标题栏,不允许拖动,但是要保留着边框,请问如何实现呢。



应该没办法实现,但是 如果你系统的窗口系统真的支持你提到的这种情况,你可以调用系统api。


引用楼主txwhhny于2011-11-22 08:49发表的 请问qt的widget如何隐藏标题栏,但是要保留边框 :
能否在ui文件使用重写过QLineEdit的类呢。


可以,或者你想看看这个 http://blog.csdn.net/dbzhang800/article/details/6871693
快速回复
限100 字节
 
上一个 下一个