LINUX.ORG.RU

История изменений

Исправление next_time, (текущая версия) :

@tnodir @slovazap минимальный нерабочий пример:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QMenu>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QMenu menu;
public:
    MainWindow(QWidget *parent = nullptr);
    QTimer timer, timer_for_window;
    ~MainWindow();
    virtual void mousePressEvent(QMouseEvent *event) override;
public slots:
    void switch_window_state();
    void show_window_state();
    void adjust_size();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QMouseEvent>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(&timer, SIGNAL(timeout()), this, SLOT(show_window_state()));
    timer.start(1000);
    connect(menu.addAction("switch window state"), SIGNAL(triggered()), this, SLOT(switch_window_state()));
    connect(&timer_for_window, SIGNAL(timeout()), this, SLOT(adjust_size()));
    timer_for_window.start(400);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::adjust_size()
{
    resize(100, 200);
}

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event->type() != QMouseEvent::MouseButtonPress) return;
    menu.exec(event->globalPos());
}

void MainWindow::switch_window_state()
{
    auto flag = Qt::WindowMaximized;
    bool is_window_maximized = this->windowState().testFlag(flag);
    auto s = this->windowState();
    qDebug()<<s<<is_window_maximized;
    if(is_window_maximized)
        setWindowState(windowState() & ~flag);
    else
        setWindowState(windowState() | flag);
}

void MainWindow::show_window_state()
{
    qDebug()<<this->windowState();
}



Исправление next_time, :

@tnodir @slovozar минимальный нерабочий пример:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QMenu>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QMenu menu;
public:
    MainWindow(QWidget *parent = nullptr);
    QTimer timer, timer_for_window;
    ~MainWindow();
    virtual void mousePressEvent(QMouseEvent *event) override;
public slots:
    void switch_window_state();
    void show_window_state();
    void adjust_size();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QMouseEvent>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(&timer, SIGNAL(timeout()), this, SLOT(show_window_state()));
    timer.start(1000);
    connect(menu.addAction("switch window state"), SIGNAL(triggered()), this, SLOT(switch_window_state()));
    connect(&timer_for_window, SIGNAL(timeout()), this, SLOT(adjust_size()));
    timer_for_window.start(400);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::adjust_size()
{
    resize(100, 200);
}

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event->type() != QMouseEvent::MouseButtonPress) return;
    menu.exec(event->globalPos());
}

void MainWindow::switch_window_state()
{
    auto flag = Qt::WindowMaximized;
    bool is_window_maximized = this->windowState().testFlag(flag);
    auto s = this->windowState();
    qDebug()<<s<<is_window_maximized;
    if(is_window_maximized)
        setWindowState(windowState() & ~flag);
    else
        setWindowState(windowState() | flag);
}

void MainWindow::show_window_state()
{
    qDebug()<<this->windowState();
}



Исходная версия next_time, :

минимальный нерабочий пример:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QMenu>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QMenu menu;
public:
    MainWindow(QWidget *parent = nullptr);
    QTimer timer, timer_for_window;
    ~MainWindow();
    virtual void mousePressEvent(QMouseEvent *event) override;
public slots:
    void switch_window_state();
    void show_window_state();
    void adjust_size();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QMouseEvent>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(&timer, SIGNAL(timeout()), this, SLOT(show_window_state()));
    timer.start(1000);
    connect(menu.addAction("switch window state"), SIGNAL(triggered()), this, SLOT(switch_window_state()));
    connect(&timer_for_window, SIGNAL(timeout()), this, SLOT(adjust_size()));
    timer_for_window.start(400);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::adjust_size()
{
    resize(100, 200);
}

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event->type() != QMouseEvent::MouseButtonPress) return;
    menu.exec(event->globalPos());
}

void MainWindow::switch_window_state()
{
    auto flag = Qt::WindowMaximized;
    bool is_window_maximized = this->windowState().testFlag(flag);
    auto s = this->windowState();
    qDebug()<<s<<is_window_maximized;
    if(is_window_maximized)
        setWindowState(windowState() & ~flag);
    else
        setWindowState(windowState() | flag);
}

void MainWindow::show_window_state()
{
    qDebug()<<this->windowState();
}