如何改变获取到焦点的QLineEdit的颜色,失去焦点后颜色变回

我鲁班无敌 2013-10-18 11:34:36
如题:
在通过键盘改变焦点到不同的QLineEdit上时获取到焦点的控件改变颜色,失去焦点后变回原来的颜色。我用eventFilter事件过滤没有效果,还有什么其他办法吗?
...全文
1613 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2013-10-19
  • 打赏
  • 举报
回复 3

void foo() {
QWidget *w = new QWidget();
QLineEdit *edit1 = new QLineEdit();
QLineEdit *edit2 = new QLineEdit();

QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(edit1);
layout->addWidget(edit2);
w->setLayout(layout);

QString style("QLineEdit{border: 3px solid black;}"
"QLineEdit:focus{border: 3px solid red;}");
w->setStyleSheet(style);

w->show();
}
我鲁班无敌 2013-10-19
  • 打赏
  • 举报
回复
引用 3 楼 LazyDreamHunter 的回复:
还有一种方法, class CEdit : public QLineEdit { protected: void focusInEvent(QEvent *); void focusOutEvent(QEvent *); }; 重载上面两个函数,在这两个函数了,改变焦点的颜色
这个好上去能不错,重载函数之后,我再定义编辑框用的是CEdit 而不是 QLineEdit把? 大神,有没有例子参考下呢
RabinSong 2013-10-19
  • 打赏
  • 举报
回复
3.使用getFocusWidget();,得到获得焦点的控件,然后改变颜色 QWidget *pWidget = QApplication::getFocusWidget();
RabinSong 2013-10-19
  • 打赏
  • 举报
回复
还有一种方法, class CEdit : public QLineEdit { protected: void focusInEvent(QEvent *); void focusOutEvent(QEvent *); }; 重载上面两个函数,在这两个函数了,改变焦点的颜色
我鲁班无敌 2013-10-18
  • 打赏
  • 举报
回复
引用 1 楼 u011012932 的回复:
[quote=引用 楼主 z601316152 的回复:] 如题: 在通过键盘改变焦点到不同的QLineEdit上时获取到焦点的控件改变颜色,失去焦点后变回原来的颜色。我用eventFilter事件过滤没有效果,还有什么其他办法吗?
设置样式: QLineEdit{ border:1px solid gray; } QLineEdit:hover{ border-width:2px; border-color:rgb(170, 170, 255); } QLineEdit:focus { border-width:2px; border-color:rgb(170, 170, 255); } 注意:QLineEdit:focus这是获取焦点的样式![/quote] 没变。不好使啊
一去丶二三里 2013-10-18
  • 打赏
  • 举报
回复
引用 楼主 z601316152 的回复:
如题: 在通过键盘改变焦点到不同的QLineEdit上时获取到焦点的控件改变颜色,失去焦点后变回原来的颜色。我用eventFilter事件过滤没有效果,还有什么其他办法吗?
设置样式: QLineEdit{ border:1px solid gray; } QLineEdit:hover{ border-width:2px; border-color:rgb(170, 170, 255); } QLineEdit:focus { border-width:2px; border-color:rgb(170, 170, 255); } 注意:QLineEdit:focus这是获取焦点的样式!

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧