C++ 设计QFrame和QSizeGrip
我创建了一个QFrame,并添加了一个包含QSizeGrip的布局来调整QFrame的大小 这是我的代码。pp:C++ 设计QFrame和QSizeGrip,c++,qt,C++,Qt,我创建了一个QFrame,并添加了一个包含QSizeGrip的布局来调整QFrame的大小 这是我的代码。pp: DragWidget::DragWidget(QWidget *parent) : QFrame(parent) { setFrameStyle(QFrame::Sunken | QFrame::StyledPanel); //Set flag to resize setWindowFlags(Qt::SubWindow); QGridLayo
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的图标大小(使其更清晰…)
您可以使用样式表自定义QSizeGrip。 这里有一个例子: 这里是Qt样式表文档: 在您的情况下,可以添加以下代码行:
sizeGrip->setStyleSheet("QSizeGrip { image: url(yourFolder/yourImage.png); }");
以类似的方式,您可以自定义QFrame背景,设置将重复的图像。看到和
编辑
另一种方法是对
QSizeGrip
进行子类化,并重新实现paintEvent()
方法(也可能是sizeHint()
,具体取决于图标大小)。这里有一个例子这很好,但是如果我在布局中添加一个按钮,然后添加sizegrip,图标就会消失。(如果我不使用图像,默认的sizegrip图标将正常显示)。另外,你对QFrame的背景有什么想法吗。非常感谢你。关于QFrame背景,请参见我在答案中的编辑。对于图标,不确定,但尝试在样式表中设置QSizeGrip的大小,如链接示例(自定义QSizeGrip)中所示,仍然存在图标错误。关于QFrame,我想我将使用QPainter来绘制。如果你有任何进一步的建议,请告诉我。谢谢。是的,我用油漆工画的。更具体地说,我使用了QPoint和for循环。无论如何,谢谢你。