Включить изменение размера в QWidget
Я хочу изменить размер в QWidget
используя Qt, как показано на рисунке ниже.
Я использовал следующие пробовал следующие способы:
с помощью QSizeGrip
, setSizeGripEnabled
1 ответ
Для полноты приведу два примера: с 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();
}
Результат
Обновление для включения безрамочного режима
Добавление подсказки Frameless 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();
}
Результат
Поскольку все параметры работают прямо, я бы посоветовал вам внимательно изучить дизайн кода / пользовательского интерфейса для таких вещей, как установка максимального / минимального размера (если оба параметра одинаковы, ручка все равно будет доступна, но не изменит размер совсем).