У меня есть QToolBar с различными кнопками инструментов. Я хочу настроить эти кнопки с помощью некоторых простых эффектов, например, должно быть видно, что кнопка нажата, после нажатия она должна изменить цвет значка или цвет фона и т. д.
Я пытался, но у меня не получилось.
_toolbar = new QToolBar;
_toolbar->setIconSize(QSize(35,35));
_toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
void createIcons()
{
_zoomInIcon = QIcon::fromTheme("zoom-in");
_zoomIn = new QAction(_zoomInIcon, "Zoom in", this);
// code for other icons
_toolbar->addAction(_zoomIn);
}
void myClass::ZoomIn()
{
_zoomIn->setCheckable(true);
//QToolButton:_zoomInIcon {background-color: red; }
//setStyleSheet('background-color: red;');
// other logic
}
Более того, я использую значки Qt по умолчанию из этого значки по умолчанию
Но некоторые иконки выглядят не очень хорошо, особенно save in
и save in as
.
Итак, кто-нибудь знает больше значков по умолчанию, кроме приведенной выше ссылки в Qt?
Может кто-нибудь мне помочь ?
Попробуйте что-то вроде ниже (не проверено)
//Get the tool button using the action
QToolButton* zoomInButton = mytoolbar->widgetForAction(_zoomIn);
//Set the style you want.
zoomInButton->setStyleSheet("QToolButton:pressed"
"{"
"background-color : red;"
"}"
);
И вы можете использовать все стили QPushButton
, если у вашей кнопки инструмента нет меню.
https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton
The QToolButton has no menu. In this case, the QToolButton is styled exactly like QPushButton.