【问题标题】:Enable resizing on QWidget在 QWidget 上启用调整大小
【发布时间】:2017-11-02 07:36:38
【问题描述】:

我想要使用 Qt 在 QWidget 中调整大小功能,如下图所示。

我尝试过以下方法:

使用QSizeGripsetSizeGripEnabled

【问题讨论】:

  • 我使用了 setSizeGripEnabled(true) 但它只提供了光标在拐角处。
  • 该属性仅适用于QDialog
  • 请让我也使用 QDialog 来执行此操作。我已经使用了差异门户上提供的所有方法,但它不起作用......
  • “我已经使用了所有的方式......”,在你的问题中发布你所采取的所有路径会非常方便。
  • 好吧,我的意思是包含一个minimal reproducible example,以显示您的实际代码(如答案中),尝试重现这些示例,然后开始构建它们,也许您有一个选项'已经激活而没有注意到它。请查看答案并使用实际代码、参数、屏幕截图更新您的问题...

标签: c++ qt resize qdialog qtwidgets


【解决方案1】:

为了完整起见,我将展示两个示例:使用和不使用 Qt 设计器。


使用 Qt 设计器的示例

检查sizeGripEnabled 属性:

在 Qt 设计器中预览(Form > Preview...):

显示对话框的最小应用程序:

#include <QtWidgets/QApplication>
#include <QDialog>
#include "ui_DialogButtonBottom.h"

class Dialog : public QDialog {
public:
  Dialog(QWidget* parent = nullptr) :
    QDialog(parent) {
    ui.setupUi(this);
  }

private:
  Ui::Dialog ui;
};

int main(int argc, char* argv[])
{
  QApplication a(argc, argv);

  Dialog dlg;
  return dlg.exec();
}

结果


没有 Qt 设计器

#include <QtWidgets/QApplication>
#include <QDialog>

class Dialog : public QDialog {
public:
  Dialog(QWidget* parent = nullptr) :
    QDialog(parent) {
    setWindowTitle("Example");
    setSizeGripEnabled(true);
  }
};

int main(int argc, char* argv[])
{
  QApplication a(argc, argv);

  Dialog dlg;
  return dlg.exec();
}

结果


更新以包含无框模式

添加无框窗口提示不会改变任何东西:它可以正常工作。显然,没有框架,因此 windows 管理器提供的调整大小/移动方法不可用。

#include <QtWidgets/QApplication>
#include <QDialog>

class Dialog : public QDialog {
public:
  Dialog(QWidget* parent = nullptr, Qt::WindowFlags flags = 0) :
    QDialog(parent, flags) {
    setWindowTitle("Example");
    setSizeGripEnabled(true);
  }
};

int main(int argc, char* argv[])
{
  QApplication a(argc, argv);

  Dialog dlg(nullptr, Qt::FramelessWindowHint); // frameless
  return dlg.exec();
}

结果


由于所有选项都可以直接使用,我建议您仔细检查您的代码/UI 设计,例如设置最大/最小尺寸(如果两者相同,则手柄仍然可用,但不会完全改变大小)。

【讨论】:

  • 我很欣赏这个解决方案,但我使用的是无框对话框
猜你喜欢
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2015-04-08
  • 2021-02-13
相关资源
最近更新 更多