C++ 带有多个图标和文本的复杂按钮
我需要创建一个按钮,其中可能包含两个图标和两个文本标签显示(在屏幕截图上-每行,如“电子邮件”或“连接”是一个独立的按钮) 据我所知,我不能覆盖QPushButton或QAbstractButton,我必须实现自己的自定义小部件以实现这样的布局。到目前为止,我正在尝试使用Qt Designer制作这样的按钮,并使用QSS和动态属性更改小部件的样式,但由于某些原因,当我按下按钮时样式表并没有改变。我的代码:C++ 带有多个图标和文本的复杂按钮,c++,qt,qtstylesheets,C++,Qt,Qtstylesheets,我需要创建一个按钮,其中可能包含两个图标和两个文本标签显示(在屏幕截图上-每行,如“电子邮件”或“连接”是一个独立的按钮) 据我所知,我不能覆盖QPushButton或QAbstractButton,我必须实现自己的自定义小部件以实现这样的布局。到目前为止,我正在尝试使用Qt Designer制作这样的按钮,并使用QSS和动态属性更改小部件的样式,但由于某些原因,当我按下按钮时样式表并没有改变。我的代码: 命名空间用户界面 { ViewEntryButton::ViewEntryButton(
命名空间用户界面
{
ViewEntryButton::ViewEntryButton(QWidget*父项)
:QWidget(父项)
,ui(新ui::ViewEntryButton)
{
用户界面->设置用户界面(此);
}
ViewEntryPutton::~ViewEntryPutton()
{
删除用户界面;
}
void ViewEntryButtown::MousePresseEvent(QMouseEvent*事件)
{
此->设置属性(“按下”,为真);
此->样式()->未抛光(此);
此->样式()->抛光(此);
此->更新();
}
void ViewEntryButtown::mouseReleaseEvent(QMouseEvent*事件)
{
此->设置属性(“按下”,错误);
此->样式()->未抛光(此);
此->样式()->抛光(此);
此->更新();
}
}//名称空间用户界面
以及我应用于Qt Designer对象视图中最高对象的样式表:
#查看按钮{
背景色:透明;
填充物:5px;
左边距:5px;
}
#ViewEntryButton[按下=“true”]{
背景色:rgb(51,025);
边框宽度:3倍;
边框颜色:rgba(255、255、255、20);
边框样式:插图;
}
所以我的问题是:
1.我的方法正确吗?或者可以将QAbstractButton
子类化并像这样实现它?
2.在这种情况下,我对样式表做了什么错误?为什么当我按下鼠标时小部件的样式没有改变?您是否尝试过使用构造函数中的setstylesheet函数来更改样式表。这只是另一种做事的方式
Button.setstylesheet("")
您是否尝试过在构造函数中使用setstylesheet函数更改样式表。这只是另一种做事的方式
Button.setstylesheet("")
最终使用自定义小部件和透明按钮,我认为这是最好的方法 我在布局的“低”层上创建了必要的标签,并在它们上面添加了一个按钮,背景为
background:transparent样式表中的代码>属性
此外,布局中的StackingMode应设置为StackAll
。最后使用自定义小部件,在所有其他层之上使用透明按钮,我认为这是最好的方法
我在布局的“低”层上创建了必要的标签,并在它们上面添加了一个按钮,背景为background:transparent样式表中的代码>属性
此外,布局中的StackingMode应设置为StackAll