2015-03-17 10 views
0

Я использую QT (версия 5.4 msvc2013_64) с курсом vs2013. Компиляция успешна, но при запуске работает не каждая вещь. Прежде чем с vs2010 и QT (я думаю, что версия 5.1 msvc_2010_opengl точно не помнит), каждая вещь работала, но теперь все дело в том, что, возможно, характерно для начала более новых версий, но нужно разрешить. У меня также есть другие проблемы с этим, но сначала давайте рассмотрим это, так как, возможно, другие будут решены. Еще я отправлю еще один вопрос для других проблем. Конечно. Если я не вижу решения этой проблемы с текущим QT и vs, я переключусь на vs2012 (требуется загрузка и установка); Может быть, тогда все будет работать по-прежнему. Заранее спасибо.Изображение не показано с использованием Qpixmap с QT5.4 и mvs2013 x64

ui_ta7feezquran.h

/******************************************************************************** 
    ** Form generated from reading UI file 'ta7feezquran.ui' 
    ** 
    ** Created by: Qt User Interface Compiler version 5.4.1 
    ** 
    ** WARNING! All changes made in this file will be lost when recompiling UI file! 
    ********************************************************************************/ 

#ifndef UI_TA7FEEZQURAN_H 
#define UI_TA7FEEZQURAN_H 

#include <QtCore/QVariant> 
#include <QtWidgets/QAction> 
#include <QtWidgets/QApplication> 
#include <QtWidgets/QButtonGroup> 
#include <QtWidgets/QHeaderView> 
#include <QtWidgets/QLabel> 
#include <QtWidgets/QMainWindow> 
#include <QtWidgets/QMenuBar> 
#include <QtWidgets/QToolBar> 
#include <QtWidgets/QWidget> 

QT_BEGIN_NAMESPACE 

class Ui_Ta7feezQuranClass 
{ 
public: 
    QWidget *centralWidget; 
    QLabel *a; 
    QMenuBar *menuBar; 
    QToolBar *mainToolBar; 

    void setupUi(QMainWindow *Ta7feezQuranClass) 
    { 
     if (Ta7feezQuranClass->objectName().isEmpty()) 
      Ta7feezQuranClass->setObjectName(QStringLiteral("Ta7feezQuranClass")); 
     Ta7feezQuranClass->resize(572, 485); 
     centralWidget = new QWidget(Ta7feezQuranClass); 
     centralWidget->setObjectName(QStringLiteral("centralWidget")); 
     a = new QLabel(centralWidget); 
     a->setObjectName(QStringLiteral("a")); 
     a->setGeometry(QRect(-30, -20, 601, 471)); 
     a->setPixmap(QPixmap(QString::fromUtf8(":/Ta7feezQuran/Resources/Amasjed Alharam.jpg"))); 
     a->setScaledContents(true); 
     Ta7feezQuranClass->setCentralWidget(centralWidget); 
     menuBar = new QMenuBar(Ta7feezQuranClass); 
     menuBar->setObjectName(QStringLiteral("menuBar")); 
     menuBar->setGeometry(QRect(0, 0, 572, 21)); 
     menuBar->setLayoutDirection(Qt::RightToLeft); 
     Ta7feezQuranClass->setMenuBar(menuBar); 
     mainToolBar = new QToolBar(Ta7feezQuranClass); 
     mainToolBar->setObjectName(QStringLiteral("mainToolBar")); 
     Ta7feezQuranClass->addToolBar(Qt::TopToolBarArea, mainToolBar); 

     retranslateUi(Ta7feezQuranClass); 

     QMetaObject::connectSlotsByName(Ta7feezQuranClass); 
    } // setupUi 

    void retranslateUi(QMainWindow *Ta7feezQuranClass) 
    { 
     Ta7feezQuranClass->setWindowTitle(QApplication::translate("Ta7feezQuranClass", "Ta7feezQuran", 0)); 
     a->setText(QString()); 
    } // retranslateUi 

}; 

namespace Ui { 
    class Ta7feezQuranClass: public Ui_Ta7feezQuranClass {}; 
} // namespace Ui 

QT_END_NAMESPACE 

#endif // UI_TA7FEEZQURAN_H 

ta7feezquran.h

#ifndef TA7FEEZQURAN_H 
#define TA7FEEZQURAN_H 

#include <QtWidgets/QMainWindow> 
#include "ui_ta7feezquran.h" 

class Ta7feezQuran : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    Ta7feezQuran(QWidget *parent = 0); 
    ~Ta7feezQuran(); 

private: 
    Ui::Ta7feezQuranClass ui; 
}; 

#endif // TA7FEEZQURAN_H 

ta7feezquran.cpp

#include "ta7feezquran.h" 

Ta7feezQuran::Ta7feezQuran(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    ui.setupUi(this); 
} 

Ta7feezQuran::~Ta7feezQuran() 
{ 

} 

main.cpp

#include "ta7feezquran.h" 
#include <QtWidgets/QApplication> 

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

ta7feezquran.qrc

<RCC> 
    <qresource prefix="/Ta7feezQuran"> 
     <file>Resources/Amasjed Alharam.jpg</file> 
    </qresource> 
</RCC> 
+0

Убедитесь, что изображение на самом деле является форматом JPG и у вас установлен плагин qjpeg. – svlasov

+0

Изображение представляет собой фактическое изображение в формате JPG, а плагин qjpeg установлен. Может быть, qjpeg.dll должен ссылаться на vs? Если да, то как ссылаться на нее или убедиться, что она включена? – mj1261829

+0

Он должен быть загружен динамически во время выполнения. При развертывании по умолчанию плагины Qt должны быть помещены в каталог 'imageformats', рядом с исполняемым файлом. Поэтому вам нужно иметь 'imageformats \ qjpeg.dll'. – svlasov

ответ

0

Некоторые функции приложения, используемые, например, изображения, мультимедиа, поддержка печати и т.д., требуют использования Qt плагинов.

Необходимые плагины должны быть скопированы в исполняемую папку (папка с файлом .exe), скопировав папки плагина (с включенными DLL) и вставив их в исполняемую папку. Все остальное должно работать так, как ожидалось.

В этом случае для копирования требуется папка с образцами (с qjpeg.dll, включенная в качестве файла, используемого в формате jpg).