如何在 Qt 中从 QToolBar 自定义 QToolButtons?
How to customize QToolButtons from QToolBar in Qt?
我有 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
}
此外,我正在使用来自此 default-icons
的 Qt 默认图标
但是有些图标特别不好看 save in
和 save in as
.
那么有没有人知道 Qt 中除了以上 link 之外的更多默认图标?
谁能帮帮我?
试试下面的方法(未测试)
//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.
我有 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
}
此外,我正在使用来自此 default-icons
的 Qt 默认图标
但是有些图标特别不好看 save in
和 save in as
.
那么有没有人知道 Qt 中除了以上 link 之外的更多默认图标?
谁能帮帮我?
试试下面的方法(未测试)
//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.