Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Program do nauki słówek POMOC
Qt 6.11 is out! See what's new in the release blog

Program do nauki słówek POMOC

Scheduled Pinned Locked Moved Unsolved Polish
4 Posts 2 Posters 2.1k Views 2 Watching
  • 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.
  • D Offline
    D Offline
    Dominik
    wrote on last edited by
    #1

    Piszę program do nauki słówek. Chcę wykorzystać bibliotekę STL. Na razie mam dopiero początek, no i pierwsze problemy.

    slowa.h
    
    #ifndef SLOWA_H
    #define SLOWA_H
    
    #include <QMainWindow>
    
    class slowa
    {
    public:    
        explicit slowa(QWidget *parent = 0);
        QString polskie;
        QString obce;
        slowa(QString xpolskie, QString xobce);
        ~slowa();
    
    };
    
    #endif // SLOWA_H
    
    
    mainwindow.h
    
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    #include "slowa.h"
    
    #include <QMainWindow>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H
    
    slowa.cpp
    
    #include "slowa.h"
    
    slowa::slowa(QString xpolskie, QString xobce):
         polskie(xpolskie)
        , obce(xobce)
    
    {
    }
    slowa::~slowa()
    {
    }
    
    
    mainwindow.cpp
    
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        QVector <slowa> s;
        QString pl = "polskie";
        QString en = "obce";
        s.push_back(slowa(pl,en));
        ui->setupUi(this);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    

    Mam problem z błędem

    mainwindow.obj:-1: błąd: LNK2019: unresolved external symbol "public: __cdecl slowa::slowa(class QWidget *)" (??0slowa@@QEAA@PEAVQWidget@@@Z) referenced in function "private: void __cdecl QVector<class slowa>::defaultConstruct(class slowa *,class slowa *)" (?defaultConstruct@?$QVector@Vslowa@@@@AEAAXPEAVslowa@@0@Z)
    
    1 Reply Last reply
    0
    • Chris KawaC Offline
      Chris KawaC Offline
      Chris Kawa
      Lifetime Qt Champion
      wrote on last edited by Chris Kawa
      #2

      W slowa.h masz taki konstruktor:

      explicit slowa(QWidget *parent = 0);
      

      ale nigdzie go nie implementujesz. Z tego co tu widzę to slowa nie będzie widgetem, więc ten konstruktor jest zupełnie zbędny, usuń go. Ten include #include <QMainWindow> w slowa.h też nie jest Ci potrzebny.

      Taka drobna uwaga nie związana z problemem - nie przekazuj stringów przez wartość tylko przez const referencję, jest zdecydowanie wydajniej:

      slowa(const QString& xpolskie, const QString& xobce);
      
      1 Reply Last reply
      0
      • D Offline
        D Offline
        Dominik
        wrote on last edited by
        #3

        Zmieniłem to co mówiłeś w slowa.h teraz mam taki błąd

        C:\Qt\5.9\msvc2013_64\include\QtCore\qvector.h:320: błąd: C2512: 'slowa' : no appropriate default constructor available
        

        konstruktor w c++

        slowa::slowa(QString xpolskie, QString xobce):
             polskie(xpolskie)
            , obce(xobce)
        {
        }
        
        1 Reply Last reply
        0
        • Chris KawaC Offline
          Chris KawaC Offline
          Chris Kawa
          Lifetime Qt Champion
          wrote on last edited by
          #4

          QVector wymaga, aby typ posiadał domyślny konstruktor, czyli możesz albo dodać nowy konstruktor:

          slowa() {}
          

          albo zmienić ten który masz dodając domyślne wartości argumentów:

          slowa(const QString& xpolskie = QString(), const QString& xobce = QString());
          
          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