Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak skompilować z QT do C++

Ostatnio zmodyfikowano 2014-11-13 14:55
Autor Wiadomość
VerexPL
Temat założony przez niniejszego użytkownika
Jak skompilować z QT do C++
» 2014-11-02 16:17:07
Zrobiłem sobie w QT creator GUI i chciałbym je przerobić do C++
Zbudowałem (kliknąłem na młotek) i pojawił się nowy folder z plikiem .exe (który nie działa, bo co chwila piszę, że brakuję jakiejś DLL) i moc_mainwindow.cpp
No to ja mądra głowa myślałem, że jak skopiuje kod z moc_mainwindow.cpp do code::block to wszystko będzie chodziło pięknie ładnie.
No ale niestety, wyskakuje mi wiele błędów http://screenshu.com/static/uploads/temporary/zh/gr/hp/eswokt.jpg

Gui.pro

#-------------------------------------------------
#
# Project created by QtCreator 2014-11-01T20:13:02
#
#-------------------------------------------------
QT += webkit
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = GUI
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

Mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_Gospodarze_clicked();

    void on_Zatrzymaj_clicked();

    void on_Goscie_clicked();


private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

Main.cpp
C/C++
#include "mainwindow.h"
#include <QApplication>

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    MainWindow w;
    w.show();
   
    return a.exec();
}

Mainwindow.cpp
C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"
int GospodarzeL = 2;
int ZatrzymajL = 2;
int GoscieL = 2;

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
     , ui( new Ui::MainWindow )
{
    ui->setupUi( this );
}

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

void MainWindow::on_Gospodarze_clicked()
{
    if( GospodarzeL < 1 ) {
        ui->GospodarzeL->setText( "<font color='Red'>OFF</font>" );
        GospodarzeL = 2;
    } else {
        ui->GospodarzeL->setText( "<font color='Green'>ON</font>" );
        GospodarzeL = 0; }
}


void MainWindow::on_Zatrzymaj_clicked()
{
    if( ZatrzymajL < 1 ) {
        ui->ZatrzymajL->setText( "<font color='Red'>OFF</font>" );
        ZatrzymajL = 2;
    } else {
        ui->ZatrzymajL->setText( "<font color='Green'>ON</font>" );
        ZatrzymajL = 0; }
}

void MainWindow::on_Goscie_clicked()
{
    if( GoscieL < 1 ) {
        ui->GoscieL->setText( "<font color='Red'>OFF</font>" );
        GoscieL = 2;
    } else {
        ui->GoscieL->setText( "<font color='Green'>ON</font>" );
        GoscieL = 0; }
}

Dodam, że jak używam start z Qt creatora, to wszystko działa jak należy.
P-119853
sajmon
» 2014-11-02 18:54:14
Zbuduj projekt w trybie release i potem wrzuć do folderu potrzebne pliki dll, znajdziesz je w folderze Qt. Innej opcji zbytnio nie masz :P Był tu na forum często wrzucany link do programu, który pokazuje jakich plików dll brakuje.
P-119869
VerexPL
Temat założony przez niniejszego użytkownika
» 2014-11-02 19:12:53
Sajmon problem w tym, że ja chciałbym, aby kod GUI mieć w Code::blocks
I tam jeszcze funkcję dopisać.
P-119874
sajmon
» 2014-11-02 19:23:45
Nie wiem dlaczego nie możesz jej dopisać w QtCreatorze ale spoko xd
Musisz zatem ściągnąć źródła Qt i zbudować je w Code Blocks, żeby stworzyć dllki
blog.matthew.org.pl/2012/05/25​/jak-skompilowac-qt5/
P-119878
VerexPL
Temat założony przez niniejszego użytkownika
» 2014-11-02 19:47:12
Bo w QtCreatorze nie zawsze jest dobrze pisać :P
Jakoś czuję się pewniej w Code::Blocks

Dodałem wszystkie DLL jakie mi kazało i tak nie działało.
P-119880
sajmon
» 2014-11-02 20:15:55
Te błędy w okienkach windowsowych co wyskakują przy odpalaniu programu nie pokazują wszystkich brakujących dllek :P
P-119882
VerexPL
Temat założony przez niniejszego użytkownika
» 2014-11-02 20:21:05
Sajmon a znasz może jakiś dobry builder co od razu w C++ daje?
Próbowałem z Glade (GTK) i Qt
P-119884
b00rt00s
» 2014-11-13 14:55:27
Nikt Ci nie broni pisać programy wykorzystujące Qt nawet w notatniku. Musisz jedynie korzystać z qmake jako systemu budowania (można i inaczej, ale to jest trochę naokoło).

Skoro uzyskałeś już plik exe, to znaczy, że program skompilował się poprawnie. Do uruchomienia potrzebujesz jedynie dll'ków Qt.
P-120509
« 1 »
  Strona 1 z 1