2016-03-31 4 views
2

Поэтому я создать простое приложение Qt, программа сбой, прежде чем вы увидите окно, и вот код:Qt C++ компиляция выполняется без программы, показывая

First.pro:

#------------------------------------------------- 
# 
# Project created by QtCreator 2016-03-31T18:48:54 
# 
#------------------------------------------------- 

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = First 
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_pushButton_clicked(); 

private: 
    Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 

main.cpp:

#include "mainwindow.h" 
#include <QApplication> 

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

    return a.exec(); 
} 

mainwindow.cpp:

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

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

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

void MainWindow::on_pushButton_clicked() 
{ 
    ui->label->setText("Pushed!"); // Just this 

} 

Всякий раз, когда я нажимаю кнопку запуска левой стороной вниз, она успешно компилируется, но я не вижу ничего есть какие-либо проблемы? Я использую «Qt 5.6.0 для Windows 32-bit (MinGW 4.9.2, 1.0 GB)« Кстати.

+0

Хотя это не обязательно «правильное» решение, попробуйте добавить 'ui-> label-> repaint();' сразу после просто помочь немного отлаживать. Также добавьте 'qDebug'/breakpoint, чтобы убедиться, что функция-член фактически вызвана. – OMGtechy

+0

Привет, OMGtechy, где я должен поставить qDebug точно? Как это точно реализовать? – Fur

+0

'qDebug() <<" TEST ";' - если вы можете получить сообщение об ошибке, если оно не определено или что-то убедитесь, что вы включили заголовок 'QDebug'. Более подробную информацию можно найти здесь http://doc.qt.io/qt-5/qdebug.html – OMGtechy

ответ

1

Ответ на мою проблему заключается в том, что вы должны скопировать все DLL-файлы из каталога: C: \ Qt \ Qt5.6.0 \ 5.6 \ mingw49_32 \ bin в вашу папку сборки. В моем случае это: C: \ Users \ Fur \ Documents \ Programming \ build-First-Desktop_Qt_5_6_0_MinGW_32bit-Release \ release Да, я использую профиль выпуска, потому что более высокая производительность и не потребляет ресурсов намного больше, чем Debug. После того, как вы скопировали все DLL-файлы, просто очистите их, удалив все DLL-файлы из этой сборной папки (убедитесь, что ваш исполняемый файл работает во время выполнения этого). Это нужно, чтобы очистить папку сборки, и необходимые файлы .dll останутся;)

+1

вы также можете проверить параметры сборки и запуска, если все там правильно настроено (чтобы иметь возможность запускать из QtCreator) .. очень сложно удалить DLL при запуске приложения :) – nayana

+0

Да, потому что он будет утверждать, что DLL используемый при запуске приложения hahaha, вроде бы хитрый да. Потому что использовать все это.DLL-файлы действительно тяжелы в вашем жестком диске, например, 1 ГБ +: O – Fur

+1

да, этот трюк будет работать, если нет подключаемых модулей (которые загружаются по запросу во время выполнения, я думаю), но опять же, если они уже загружены, этот трюк будет работать должным образом – nayana

Смежные вопросы