2016-12-29 16 views
0

Я использую конструктор qt5-creator и iam, используя css для настройки QPushButtons в кадре Я хочу установить геометрию кнопок с помощью css Я пробовал это, но это не работает для менякак установить геометрию элемента в css в qt5

.col-1-row-2 { position: fixed; top: 500 px; left: 500 px; } 

я заменил fixed с absolute и relative, но ничего не изменилось. Как я могу установить или изменить геометрию по умолчанию для каждого элемента в классе css? и геометрия кадров?

я использовать эту функцию, чтобы применить CSS к проекту

void MainWindow::loadCss() 
{ 
int rows = 7, mrows = 4; 
int btnWidth = width()/5, 
    btnHeight = height()/(rows + 1); 

QString css = "", temp = ".col-%1-row-%2 { top: %3 px; %4: %5 px; }"; 
for (int i = 1 ; i <= mrows ; ++i) 
{ 
    css += temp.arg(1).arg(i).arg((rows - mrows + i - 1) * btnHeight).arg("left").arg(40); 
    css += temp.arg(2).arg(i).arg((rows - mrows + i - 1) * btnHeight).arg("right").arg(40); 
} 

QFile file(":/css.qss"); 
file.open(QFile::ReadOnly); 
qApp->setStyleSheet(QString::fromLatin1(file.readAll()) 
        .replace("${fullWidth}", QString::number(width())) 
        .replace("${fullHeight}", QString::number(height())) 
        .replace("${btnHeight}", QString::number(btnHeight)) 
        .replace("${btnWidth}", QString::number(btnWidth)) 
        + css 
        ); 
file.close(); 
} 

QSS файла

* { 
font-size: 40px; 
/* qproperty-alignment: AlignCenter; */ 
background-color: none; 
} 

QFrame { 
position: fixed; 
top: 0; 
left: 0; 
min-width: ${fullWidth} px; 
min-height: ${fullHeight} px; 
max-width: ${fullWidth} px; 
max-height: ${fullHeight} px; 
} 

QPushButton { 
min-width: ${btnWidth} px; 
min-height: ${btnHeight} px; 
} 

#MainWindow { 
border-image: url(:/images/sky.jpg) 0 0 0 0 stretch stretch; 
border-width: 0px; 
} 

QFrame CSS не работает, либо.

ответ

1

Не поддерживается. Для этого используйте макеты или ручное позиционирование.

Qt реализует автономное подмножество CSS. Если что-то не подтверждено документально, оно не поддерживается. Ссылаясь на list of supported properties: управление геометрией на основе CSS не поддерживается.

Если вы настаиваете на позиции стиля с помощью CSS, это может быть 10-20 строк, чтобы добавить эту функциональность в исходный код Qt.