我希望使用Qt在QWidget
中调整大小,如下图所示。
我使用了以下方法:
使用QSizeGrip
,setSizeGripEnabled
答案 0 :(得分:0)
为了完整起见,我展示了两个例子:使用和不使用Qt Designer。
使用Qt Designer的示例
检查sizeGripEnabled
属性:
在Qt Designer中预览(表单>预览... ):
显示对话框的最小应用程序:
#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();
}
<强> Resut 强>
没有Qt Designer
#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设计,例如设置最大/最小尺寸(如果两者都相同,抓地力仍然可用,但赢得& #39; t根本不改变大小。