Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Unable to restore my Application



  • Hello,I got a problem on creating my own application

    I cant restore my application
    This is how its look like:plz-elp-me-you-pro.png
    its become grey and i cant click it.Please help me.Thanks alot.



  • This is a Notepad Application,if you need code.

    CPP:

    #include "editor.h"
    #include "ui_editor.h"
    #include "addnew.h"
    #include <QDesktopServices>
    #include <QUrl>
    #include <QMessageBox>
    #include <QFile>
    #include <QFileDialog>
    #include <QMessageBox>
    #include <QPrinter>
    #include <QPrintDialog>
    #include <QTimer>
    
    Editor::Editor(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Editor)
    {
        ui->setupUi(this);
    
        QString ProjectLocation = "C:";
        filemodel = new QFileSystemModel(this);
        filemodel->setRootPath(ProjectLocation);
    
        ui->fileExplorer->setModel(filemodel);
    }
    
    Editor::~Editor()
    {
        delete ui;
    }
    
    void Editor::on_actionAddNew_triggered()
    {
        AddNew *addnew = new AddNew;
        addnew->show();
    }
    
    void Editor::on_actionDocumentation_triggered()
    {
        QString link="https://bare-docs.github.io/";
        QDesktopServices::openUrl(QUrl(link));
    }
    
    void Editor::on_actionNew_triggered()
    {
        AddNew *addnew = new AddNew;
        addnew->show();
    }
    
    void Editor::on_actionOpen_triggered()
    {
        QString filename = QFileDialog::getOpenFileName(this, "Choose a file" );
        QFile file(filename);
        currentFile = filename;
        if(!file.open(QIODevice::ReadOnly | QFile::Text)){
            QMessageBox::warning(this, "Error", "Unable to Open File: " + file.errorString());
        }
        QTextStream in(&file);
        QString text = in.readAll();
        ui->codingarea->setPlainText(text);
        ui->itemname->setText(filename);
        file.close();
    }
    

    .H

    #ifndef EDITOR_H
    #define EDITOR_H
    
    #include <QMainWindow>
    #include <QFileSystemModel>
    #include "qregexhighlighter.h"
    #include <QFile>
    #include <QFileDialog>
    #include <QMessageBox>
    #include <QPrinter>
    #include <QPrintDialog>
    
    namespace Ui {
    class Editor;
    }
    
    class Editor : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit Editor(QWidget *parent = nullptr);
        ~Editor();
    
    private slots:
        void on_actionAddNew_triggered();
    
        void on_actionDocumentation_triggered();
    
        void on_actionNew_triggered();
    
        void on_actionOpen_triggered();
    
    private:
        Ui::Editor *ui;
        QFileSystemModel *filemodel;
        QString currentFile = "";
    };
    
    #endif // EDITOR_H
    
    

  • Lifetime Qt Champion

    @ELEMENTICY said in Unable to restore my Application:

    I cant restore my application

    Restore from what?
    Please explain better what you are doing.



  • @jsulm i cant click the restore button,
    alt text
    the middle button,between the "_" and "X" button.


  • Lifetime Qt Champion

    @ELEMENTICY It's not "restoring", it's resizing. Do you set fixed size for your application window?



  • @jsulm No i didt


  • Lifetime Qt Champion

    Hi,

    Did you tweak any flags in designer with regards to these buttons ?


  • Moderators

    @ELEMENTICY said in Unable to restore my Application:

    i cant click the restore button,
    alt text
    the middle button,between the "_" and "X" button.

    How did you maximize your window in the first place?

    @jsulm said in Unable to restore my Application:

    @ELEMENTICY It's not "restoring", it's resizing.

    To be fair, that's Windows terminology. If you hover your mouse cursor over the button between "Minimize" and "Close", the tooltip says either "Maximize" or "Restore Down"



  • @ELEMENTICY
    If you're not sure how this came about. Start with a 10-line program which just creates a top-level QWidget or QMainWindow. Make sure that does allow "Restore". Then put in what you might have in your real app, like any flags you put on the window.



  • Are you sure it is not QDialog?? If it is Qdialog then it will show like this.
    Just see your UI file



  • @Thank-You its mainwindows



  • @ELEMENTICY said in Unable to restore my Application:

    its mainwindow

    Then you must have changed something. QMainWindow is resizable, minimizable and restorable by defaut.
    Do what @JonB suggested. Create a new, empty project and open the MainWindow.

    What kind of window do we see in your screenshot? Are you sure, that it is your MainWindow? Because you create some QDialogs and QMessageBoxes here:

    @ELEMENTICY said in Unable to restore my Application:

    void Editor::on_actionNew_triggered()
    {
    AddNew *addnew = new AddNew;
    addnew->show();
    }

    and here:

    @ELEMENTICY said in Unable to restore my Application:

    void Editor::on_actionOpen_triggered()
    {
    QString filename = QFileDialog::getOpenFileName(this, "Choose a file" );
    QFile file(filename);
    currentFile = filename;
    if(!file.open(QIODevice::ReadOnly | QFile::Text)){
    QMessageBox::warning(this, "Error", "Unable to Open File: " + file.errorString());
    }
    QTextStream in(&file);
    QString text = in.readAll();
    ui->codingarea->setPlainText(text);
    ui->itemname->setText(filename);
    file.close();
    }

    You don't show us the titlebar of your AddNew dialog(?) or your QFileDialog, don't you? :-)



  • @Pl45m4 im sure its mainwindows.And these
    void Editor::on_action......

    is the trigger button on menu.
    which just open up new window only.And the current one is 100% MainWindow



  • @JKSH

    QApplication a(argc, argv);
        Editor w;
        w.setWindowState(Qt::WindowMaximized);
        w.show();
    

  • Moderators

    @ELEMENTICY said in Unable to restore my Application:

        w.setWindowState(Qt::WindowMaximized);
    

    What happens if you remove this line?



  • @JKSH still cant restore,just when start,its not fullscreen mode.


  • Moderators

    @ELEMENTICY
    and

    QApplication a(argc, argv);
        QWidget w;
        w.resize(50,50);
        w.setWindowState(Qt::WindowMaximized);
        w.show();
    

    behaves the same? what OS and window manager do you use?



  • @J-Hilk windows 10



  • @J-Hilk and yea it doesnt work.Also its MainWindow Why dont you trust me xD



  • @ELEMENTICY

    Because it's nearly impossible that you can't resize your window, when you didn't change anything. There must be some settings that got changed.

    Have you tried to create an empty project and resize / restore the MainWindow there? Does it work?
    Have you checked your design file? Have you made changes there?



  • This post is deleted!


  • @ELEMENTICY
    It's usual to supply a minimal example, if you want others to look at it. Yes, that requires reducing one's own code till it is minimal; funnily enough, often that reveals what the problem is. I see , say, 100+-odd lines. Your problem only appears when you open/double-click files, double click items, and have loads of triggers? Otherwise the restoring works OK?



  • @JonB okay i will delete the message lol



  • @ELEMENTICY
    I didn't mean you to do that. But, in the nicest way: since the rest of us have no problem, and I think you're saying you only have a problem in your main window, it would help both you & us of you strip your code down till you have a minimal example of whatever you say is wrong. When I post code here for a problem I have I reduce to the absolute minimum which shows it, not one extra unnecessary line! You might even find that in doing so you discover what your issue is yourself!

    For example, earlier @J-Hilk asked you:

    QApplication a(argc, argv);
        QWidget w;
        w.resize(50,50);
        w.setWindowState(Qt::WindowMaximized);
        w.show();
    
    1. Does this show your problem, yes or no?
    2. Change to QMainWindow w. Does this show your problem, yes or no?


  • @JonB Btw,what if i wanna keep these trigger?Cuz its important for my Text Editor.



  • @ELEMENTICY
    I'm not with you? Of course you can keep whatever code you want for your application, I was only talking about removing everything unnecessary while you post your minimal code/diagnose what the problem is. Then you can put whatever back in.

    Meanwhile, I showed you 5 lines of code, and asked for a "yes" or "no" as to whether it worked for you with a QWidget versus with a QMainWindow, which you say is where your real problem lies?


Log in to reply