奇妙なことに、QLineEdit:focus using を使用して Qt のコピーで希望どおりに動作します
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 であるため、定義済みのスタイルを保存して使用することができます。