Скажите, люди знающие, могу ли я каким-либо образом изменить цвет полос прокрутки (QScrollArea) или сделать их вид дефолтным, чтобы он не перекрывался фоном, внутри окна виджета? По заданию - изначально был дан некоторый код, у некоторых объектов изменил лишь "свойства" - цвет фона, размер окна, добавлен рисунок. Полосы прокрутки в коде даны сразу. Проблема - цвет полос имеет цвет фона. Метод setStyleSheet("background-color: white") окрашивает лишь уголок снизу справа:
#include <QtGui>
#include <QLabel>
#include <QScrollArea>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
w.setWindowTitle("MyWidget");
w.setWindowFlags(Qt::WindowStaysOnTopHint|Qt::X11BypassWindowManagerHint);
w.setWindowModality(Qt:: ApplicationModal);
w.setFixedSize(1350, 1080);
w.setCursor(Qt::CrossCursor);
w.setStyleSheet("background-color: rgb(234,17,85);");
QPixmap pic("VECTOR.jpg");
QLabel lbl;
lbl.setPixmap(pic);
lbl.setCursor(Qt::UpArrowCursor);
lbl.resize(700,900);
QScrollArea scrollArea(&w);
scrollArea.setWidget(&lbl);
scrollArea.setStyleSheet("background-color: white;");
scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea.setGeometry(295,60,700,900);
//qDebug()<<"File exists -"<<QFileInfo("VECTOR.jpg").exists()<<" "<<QFileInfo("VECTOR.jpg").absoluteFilePath();
//qDebug() << pic.load("VECTOR.jpg");
w.show();
return a.exec();
}
Стили в Qt наследуются, поэтому указывайте их для конкретного объекта
или четко задавайте цвет фона по имени для избежания наследования:
w.setObjectName("myWidget"); w.setStyleSheet("#myWidget{background-color:red;}");
или переопределяйте цвета для скроллбаров отдельно:
scrollArea.setStyleSheet("QScrollArea{background-color: transparent;}QScrollBar{background-color: blue;}");
Ну и конечно же ознакомьтесь с документацией:
стайлшиты: https://doc.qt.io/qt-5/stylesheet-reference.html
примеры: https://doc.qt.io/qt-5/stylesheet-examples.html
Проблема заключается в том, что раньше я перегружал таким методом, а с шаблонными функциями это, как я понял, работает по-другомуПодскажите,...
Не могу понять как подтянуть бинарь буста через cmake, заголовки подключаются, но бинарь не находится, что я написал неправильно? В данном примере...
Не пойму как работает void в с++Где-то читал, что если перед функцией ничего не стоит, то подразумевается что там стоит void