Domanda

Come posso caricare un foglio di stile (risorsa in stile .qss) a livello globale con Qt?

Sto cercando di rendere le cose un po 'più efficienti di:

middleIntText -> setStyleSheet("QLineEdit {  border: 1px solid gray;
                                border-radius: 5px;padding: 0 8px;
                                selection-background-color:darkgray;
                                height:40px;font-size:15px;}");
.

Ho pensato che il seguente funzionerebbe al caricamento di QLinedit una volta per tutti i widget QLinedit:

file qss:

QLineEdit {     border: 1px solid gray;
                border-radius: 5px;
                padding: 0 8px;
                selection-background-color:darkgray;
                height:40px;
                font-size:15px;}
.

file CPP:

QApplication a(argc, argv);
QFile stylesheet("formStyle.qss");
stylesheet.open(QFile::ReadOnly);
QString setSheet = QLatin1String(stylesheet.readAll());
a.setStyleSheet(setSheet);
.

Forse è giusto e sto facendo qualcos'altro sbagliato?

È stato utile?

Soluzione

Hai chiamato qstyle * qapplication :: setstyle (constQString & Style) che richiede un oggetto qstyle per style dal qstylefactory.

Invece, dovresti chiamare Void QApplication :: Setstylesheet(Cost QString & foglio) che imposta il foglio di stile dell'applicazione.

Altri suggerimenti

Il tentativo sopra è la sintassi corretta, ma ci sono motivi per cui potrebbe non funzionare.

Problemi possibili:

    .
  1. File di origine (.QSS) non viene recuperato

  2. widget superiore errato che viene scelto per applicare cascata.

  3. Sintassi del codice .QSS (CSS).

    Motivo che ho dovuto fare la mia domanda sopra è che avevo due di questi tre problemi.Ho dovuto prima indicare i file corretti la posizione e il secondo ho dovuto applicare direttamente a QWidget.

    QFile stylesheet("G:/Applications/Projects/ProspectTracker/formStyle.qss");
    stylesheet.open(QFile::ReadOnly);
    QString setSheet = QLatin1String(stylesheet.readAll());
    QWidget::setStyleSheet(setSheet);
    
    .

    @bill grazie per la tua assistenza.Ha sottolineato che avevo pubblicato .setStyle e non .setStyleSheet.Il codice campione sopra non riflette più questo, ma se non avessi cambiato quel nulla che ho fatto avrei lavorato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top