我创建了一个 QFrame 并添加了一个包含 QSizeGrip 的布局来调整 QFrame 的大小。
这是 my code.pp :
DragWidget::DragWidget(QWidget *parent)
: QFrame(parent)
{
setFrameStyle(QFrame::Sunken | QFrame::StyledPanel);
//Set flag to resize
setWindowFlags(Qt::SubWindow);
QGridLayout *layout = new QGridLayout(this);
layout->setContentsMargins(QMargins());
layout->setSpacing(0);
//Add size grip (to resize) to layout
QSizeGrip * sizeGrip = new QSizeGrip(this);
layout->addWidget(sizeGrip, 0, 0, 1, 1, Qt::AlignBottom | Qt::AlignRight);
}
我想设计QFrame有一个背景,如下所示:
此外,有没有办法自定义QSizeGrip的图标大小调整(让它更清楚......)。
答案 0 :(得分:3)
您可以使用样式表自定义QSizeGrip。 这是一个例子:Customizing QSizeGrip
这里是Qt样式表文档:Qt Style Sheets
在您的情况下,您可以添加以下代码行:
sizeGrip->setStyleSheet("QSizeGrip { image: url(yourFolder/yourImage.png); }");
以类似的方式,您可以自定义QFrame背景,设置将重复的图像。请参阅Customizing QFrame和List of properties
修改强>
另一种方法是继承QSizeGrip
并重新实现paintEvent()
方法(可能sizeHint()
,具体取决于图标大小)。这是一个示例Analog Clock Example