奇怪的是,它可以在我的 Qt 副本上使用 QLineEdit:focus 使用
QLineEdit:focus
{
border: 2px solid #006080;
}
你确定你在更远的地方没有儿童风格来推翻这个吗?因为它在 MainWindow 上,所以首先要被否决。
一个潜在的解决方法是使用事件过滤器:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->lineEdit->installEventFilter( this );
ui->lineEdit_2->installEventFilter( this );
}
...
bool MainWindow::eventFilter( QObject *object, QEvent *event )
{
QLineEdit* edit = qobject_cast< QLineEdit* >( object );
if( edit != NULL )
{
if( event->type( ) == QEvent::FocusIn )
{
edit->setStyleSheet( QString( "border: 10px solid #000000;" ) );
}
else if( event->type( ) == QEvent::FocusOut )
{
edit->setStyleSheet( QString( "border: 1px solid #000000;" ) );
}
}
}
当然,QStyleSheets 只是简单的 QString,因此您可以将预定义的样式存储起来以供使用。