QT creator水平旋转箱
有没有办法创建一个箭头指向左右(而不是上下)的QSpinBox?我还没能找到关于这个的任何东西,尽管它看起来很基本 我想您知道qt不直接提供它。 查看下面的文档,它有三个选项QT creator水平旋转箱,qt,qt-creator,Qt,Qt Creator,有没有办法创建一个箭头指向左右(而不是上下)的QSpinBox?我还没能找到关于这个的任何东西,尽管它看起来很基本 我想您知道qt不直接提供它。 查看下面的文档,它有三个选项 QAbstractSpinBox::UpDownArrows QAbstractSpinBox::PlusMinus QAbstractSpinBox::NoButtons 但您可以使用样式表属性和所需图像设置旋转框的样式 为左右符号提供好的图像文件,并使用样式表设置图像文件,如下所示 QSpinBox::up-but
QAbstractSpinBox::UpDownArrows
QAbstractSpinBox::PlusMinus
QAbstractSpinBox::NoButtons
但您可以使用样式表属性和所需图像设置旋转框的样式
为左右符号提供好的图像文件,并使用样式表设置图像文件,如下所示
QSpinBox::up-button { image: url(:/images/spinRight.png) }
QSpinBox::down-button { image: url(:/images/spinLeft.png) }
我从未找到Qt本机解决方案,因此尝试使用一些技巧,下面是一个可能的原始示例,其基本思想是使Spinbox裸露(没有本机按钮,并制作您自己的按钮)
setButtonSymbols(QAbstractSpinBox::NoButtons)代码>,我只为左/右按钮使用了简单的文本,您可以为按钮选择更奇特的图像:
h
.cpp
{
QHBoxLayout*hlayout=新的QHBoxLayout;
QToolButton*btnLt=新建QToolButton;
btnLt->SETEXT(“”);
spinBx=新的QSpinBox;
spinBx->setButtonSymbols(QAbstractSpinBox::NoButtons);
hlayout->addWidget(btnLt);
hlayout->addWidget(spinBx);
hlayout->addWidget(btnRt);
连接(btnLt,&QToolButton::clicked,this,&main窗口::leftBtn);
连接(btnRt,&QToolButton::clicked,this,&MainWindow::RightBtn);
此->用户界面->中心Widget->设置布局(hlayout);
}
void主窗口::leftBtn()
{
this->spinBx->setValue(this->spinBx->value()-1);
}
void主窗口::rightbn()
{
this->spinBx->setValue(this->spinBx->value()+1);
}
您可以将按钮移动到控件侧,并使用如下样式表为其提供自定义箭头位图:
QSpinBox::down-button {
subcontrol-origin: margin;
subcontrol-position: center left;
image: url(:/icons/leftArrow.png);
}
QSpinBox::up-button {
subcontrol-origin: margin;
subcontrol-position: center right;
image: url(:/icons/rightArrow.png);
}
例如,将以下样式表应用于固定高度为26像素的spinbox:
QSpinBox {
border: 1px solid #ABABAB;
border-radius: 3px;
}
QSpinBox::up-button {
subcontrol-origin: margin;
subcontrol-position: center left;
image: url(:/icons/leftArrow.png);
background-color: #ABABAB;
left: 1px;
height: 24px;
width: 24px;
}
QSpinBox::down-button {
subcontrol-origin: margin;
subcontrol-position: center right;
image: url(:/icons/rightArrow.png);
background-color: #ABABAB;
right: 1px;
height: 24px;
width: 24px;
}
要获得此信息:
你可以展示你想要的图片,我可以根据你的描述想到几种类型的spinbox。是的,奇怪的是他们没有实现它!甚至我都想办法把它翻转90度!但是看起来很有趣!我不熟悉,看起来像PyQt?在你的第二个例子中,down=right和up=left,这是不可能的
QSpinBox::down-button {
subcontrol-origin: margin;
subcontrol-position: center left;
image: url(:/icons/leftArrow.png);
}
QSpinBox::up-button {
subcontrol-origin: margin;
subcontrol-position: center right;
image: url(:/icons/rightArrow.png);
}
QSpinBox {
border: 1px solid #ABABAB;
border-radius: 3px;
}
QSpinBox::up-button {
subcontrol-origin: margin;
subcontrol-position: center left;
image: url(:/icons/leftArrow.png);
background-color: #ABABAB;
left: 1px;
height: 24px;
width: 24px;
}
QSpinBox::down-button {
subcontrol-origin: margin;
subcontrol-position: center right;
image: url(:/icons/rightArrow.png);
background-color: #ABABAB;
right: 1px;
height: 24px;
width: 24px;
}