一个QWidget,固定大小后,如何取消它在标题栏的双击放大功能,标题栏需要保留,因为需要留下一个关闭按钮
用setFixedSize以后双击标题栏就不会放大了啊,最大化按钮也会变成灰的
void resizeEvent(QResizeEvent *event) override {
// 检查窗口大小是否与固定大小相同
if (size() != QSize(400, 300)) {
// 将窗口大小重置为固定大小
resize(400, 300);
}
QWidget::resizeEvent(event);
}
这是一种思路,既然固定大小了,那你不是这个大小你双击的时候我又把它重置到这个大小
方法一:设置属性 this->setAttribute(Qt::WA_StyledBackground, true);
方法二:改成继承QFrame,因为QFrame自带paintEvent函数已做了实现,在使用样式表时会进行解析和绘制。
方法三:重新实现QWidget的paintEvent函数时,使用QStylePainter绘制。
void Widget::paintEvent(QPaintEvent *)
{
QStyleOption option;
option.initFrom(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
}
方法四:界面上再放widget控件。
由于参考资料中提供的代码和问题内容不太相关,我无法直接提供特定的解决方案。在Qt中取消窗口双击放大功能需要通过以下步骤完成:
MyWindow::MyWindow(QWidget *parent) : QMainWindow(parent)
{
setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
}
void MyWindow::resizeEvent(QResizeEvent *event)
{
setFixedSize(event->size());
}
这样,你就可以创建一个没有自动放大功能的带有标题栏和关闭按钮的窗口了。请根据你实际的需求和代码框架进行修改。如果你有进一步的问题或需要更详细的解决方案,请提供更多代码和上下文信息,以便我能够给出更好的回答。