您的位置:首页 > 编程语言 > Qt开发

QT控件被其他控件遮盖

2016-04-06 22:16 441 查看
这里有多个textEdit,想要实现当某个textEdit获得焦点时重置它的大小以方便文字输入,当失去焦点时恢复原状。遇到的问题是,给textEdit重置大小后会被下面的控件遮盖,背景颜色也显示不完全。还有一个问题是,第一个textEdit遮住了第二个导致第二个无法点击。如下图:



解决:添加ui->textEdit->raise();解决了遮盖问题,重新修改左侧lineEdit和右侧textEdit的大小解决了无法点击问题。

修改后如下图:



代码如下:

else if(watched == te_list[i])
{
if (event->type()== QEvent::FocusIn)
{
te_list[i]->resize(194, 60);
te_list[i]->raise();

QPalette p = QPalette();
QPalette g = QPalette();
p.setColor(QPalette::Base,Qt::yellow);
g.setColor(QPalette::Base,Qt::green);
te_list[i]->setPalette(p);
le_list[i]->setPalette(g);
}
else if(event->type()==QEvent::FocusOut)
{
te_list[i]->resize(234, 22);
QPalette p=QPalette();
p.setColor(QPalette::Base,Qt::white);
te_list[i]->setPalette(p);
le_list[i]->setPalette(p);
}

}


但这并不是最想要的结果,最想要的是实现现在的情况后textedit可以靠右显示,lineedit长度增加保持和textedit之间的距离不变,这个暂时还不知道要怎么实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: