Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Open file with double click, syntax error

Open file with double click, syntax error

Scheduled Pinned Locked Moved Solved General and Desktop
mainmainwindowload
10 Posts 3 Posters 3.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #1

    Hi everyone!

    I want to open a .htm file in my application by double clicking.
    So i have written These Code in main.cpp:

    for ( int i = 1; i < argc; ++i )
        mainWin.load(argv[i]);
    

    And These in mainwindow.h

    void load(char *fileName);
    

    And now i'm getting These Errors:

    C:\Users\Henrik\Documents\TextPad\mainwindow.h:147: Fehler: 'void MainWindow::load(char*)' is private
     void load(char *fileName);
          ^
    
    C:\Users\Henrik\Documents\TextPad\main.cpp:28: Fehler: within this context
         mainWin.load(argv[i]);
                             ^
    

    Does anybody know why the Errors are there and how to fix them?

    Thanks,
    Henrik

    1 Reply Last reply
    0
    • raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #2

      as the error says the load() method is private.
      But you are trying to access it "from the outside" of the class. Declare it as public.

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      1 Reply Last reply
      0
      • jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #3

        As the error message already says: you put load() in private section in your class, put it in public.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        ? 1 Reply Last reply
        0
        • jsulmJ jsulm

          As the error message already says: you put load() in private section in your class, put it in public.

          ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #4

          @jsulm

          C:\Users\Henrik\Documents\TextPad\main.cpp:28: Fehler: undefined reference to `MainWindow::load(char*)'
          
          C:\Users\Henrik\Documents\build-TextPad-Desktop_Qt_5_5_1_MinGW_32bit2-Debug\debug\moc_mainwindow.cpp:350: Fehler: undefined reference to `MainWindow::load(char*)'
          
          1 Reply Last reply
          0
          • jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #5

            Did you define load() method?
            I mean (usually) in cpp file:

            void MainWindow::load(char*)
            {
            
            }
            

            How experienced are you with C++?

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            ? 1 Reply Last reply
            0
            • jsulmJ jsulm

              Did you define load() method?
              I mean (usually) in cpp file:

              void MainWindow::load(char*)
              {
              
              }
              

              How experienced are you with C++?

              ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #6

              @jsulm
              No, i don't...
              What should i write in the method?

              My experiences are not so good... I read a lot of book... Reading the Code is no Problem but writing is very hard for me...

              1 Reply Last reply
              0
              • jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #7

                The method can be empty like in the example I gave.
                What you should write there is something you should know as it is your program.
                I guess you want to open a file and read its content, right? Then do it using QFile.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                ? 1 Reply Last reply
                0
                • jsulmJ jsulm

                  The method can be empty like in the example I gave.
                  What you should write there is something you should know as it is your program.
                  I guess you want to open a file and read its content, right? Then do it using QFile.

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #8

                  @jsulm
                  Yes i want to open the file...

                   QString fileName = QFileDialog::getOpenFileName(this, tr("Öffnen..."),
                                                                     QString(), tr("TextPad 1.0 (*.htm);;"));
                     QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
                  
                     QFile file(fileName, this);
                  
                     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                     {
                        qDebug() << "Fehler beim Öffnen der Datei";
                     }
                  
                     if (document())
                     {
                        document()->clear();
                     }
                  
                     document()->setHtml(file.readAll());
                     file.close();
                  

                  Something like that?

                  1 Reply Last reply
                  0
                  • jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    You already pass file path as parameter to the load() method.
                    In this case there is no need for:

                    QString fileName = QFileDialog::getOpenFileName(this, tr("Öffnen..."),
                                                                       QString(), tr("TextPad 1.0 (*.htm);;"));
                    
                    // This line does not make any sence because you do not use its return value
                    QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
                    

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    ? 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      You already pass file path as parameter to the load() method.
                      In this case there is no need for:

                      QString fileName = QFileDialog::getOpenFileName(this, tr("Öffnen..."),
                                                                         QString(), tr("TextPad 1.0 (*.htm);;"));
                      
                      // This line does not make any sence because you do not use its return value
                      QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
                      
                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #10

                      @jsulm
                      Yes. I tried before your post and it works!

                      Thank you all...

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved