2009-08-31 16 views
50

मैं एक क्यूटी यूआई में .jpg छवि प्रदर्शित करना चाहता हूं। मैंने इसे ऑनलाइन चेक किया और http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html पाया। मैंने सोचा कि ग्राफिक्स व्यू वही करेगा, और इसमें वीडियो प्रदर्शित करने के लिए कोडेक भी है। ग्राफिक्स व्यू का उपयोग कर छवियों को कैसे प्रदर्शित करें? मैं पुस्तकालयों के माध्यम से चला गया, लेकिन क्योंकि मैं क्यूटी में पूरी तरह से नौसिखिया हूं, मुझे शुरुआत करने के लिए कोई सुराग नहीं मिल रहा है। क्या आप मुझे क्यूटी में छवियों को लोड और प्रदर्शित करने के तरीके पर कुछ संसाधन/उदाहरणों के लिए निर्देशित कर सकते हैं?क्यूटी जेपीजी छवि प्रदर्शन

धन्यवाद।

उत्तर

39
#include ... 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QGraphicsScene scene; 
    QGraphicsView view(&scene); 
    QGraphicsPixmapItem item(QPixmap("c:\\test.png")); 
    scene.addItem(&item); 
    view.show(); 
    return a.exec(); 
} 

यह काम करना चाहिए। :) समर्थित प्रारूपों की सूची found here

+27

कैसे हम इस क्यूटी निर्माता में बनाया यूआई के साथ उपयोग कर सकते हैं? – DucDigital

+4

कृपया ध्यान दें कि Qt 4.6 के लिए इस कोड में एक त्रुटि है। इसे आजमाएं: int मुख्य (int argc, char * argv []) { क्यूस्ट्रिंग फ़ाइल नाम ("सी: /aaa..gif"); क्यूप्लिकेशंस ए (argc, argv); क्यूग्राफिक्ससेन दृश्य; scene.addPixmap (QPixmap (फ़ाइल नाम)); QGraphics दृश्य देखें (और दृश्य); view.show(); a.exec() लौटाएं; } – Narek

+1

इस पोस्ट का कोड क्यूटी 4.7.0 – karlphillip

11

यदि एकमात्र चीज जो आप करना चाहते हैं वह एक छवि में ग्राफिक्स एपीआई की जटिलता के साथ एक विजेट पर ड्रॉप है, तो आप एक नया QWidget भी बना सकते हैं और पृष्ठभूमि को सेट कर सकते हैं स्टाइलशीट। कुछ इस तरह:

 
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) 
{ 
    ... 
    QWidget *pic = new QWidget(this); 
    pic->setStyleSheet("background-image: url(test.png)"); 
    pic->setGeometry(QRect(50,50,128,128)); 
    ... 
} 
+0

यह मेरे लिए काम किया। धन्यवाद। – Kamal

37

आप छवि एक लेबल संलग्न कर सकता है (एक पिक्समैप के रूप में) तो अपने लेआउट में नहीं जोड़ ...

... 

QPixmap image("blah.jpg"); 

QLabel imageLabel = new QLabel(); 
imageLabel.setPixmap(image); 

mainLayout.addWidget(imageLabel); 

... 

क्षमा याचना, यह उपयोग कर रहा है जाम्बी (जावा के लिए क्यूटी) तो वाक्यविन्यास अलग है, लेकिन सिद्धांत एक ही है।

4

मैं एक क्यूटी यूआई

simpliest रास्ता में .jpg चित्र दिखाना चाहते इसके लिए QLabel उपयोग करने के लिए है:

int main(int argc, char *argv[]) { 
    QApplication a(argc, argv); 
    QLabel label("<img src='image.jpg' />"); 
    label.show(); 
    return a.exec(); 
} 
2

मैं आपकी परेशानी समझता हूं "ग्राफिक्स विजेट देखने" ऐसा करने का सबसे अच्छा तरीका नहीं है, हां यह किया जा सकता है, लेकिन यह लगभग एक लेबल (जिसे आप किसी भी तरह से चाहते हैं) के उपयोग के समान ही हैं, अब सूचीबद्ध सभी तरीके काम करते हैं लेकिन ...

आप और किसी और के लिए जो इस प्रश्न में आ सकता है वह ऐसा करने का सबसे आसान तरीका है (आप जो भी पूछ रहे हैं) यह है।

QPixmap pix("Path\\path\\entername.jpeg"); 
    ui->label->setPixmap(pix); 

}

+0

यह पूरा नहीं हुआ है, यह किसी ऐसे व्यक्ति के लिए बहुत भ्रमित हो सकता है जो छवियों के साथ खेलना नहीं जानता है। – valkon

0
  1. जोड़ें लेबल (एक QLabel) संवाद जहाँ आप छवि दिखाना चाहते हैं। यह QLabel वास्तव में छवि प्रदर्शित करेगा। उस आकार को आकार दें जिसे आप छवि दिखाना चाहते हैं।

  2. अपनी परियोजना में अपने संसाधनों में छवि जोड़ें।

  3. अब QLabel गुणों में जाएं और pixmap संपत्ति के लिए संसाधनों में जोड़े गए चित्र का चयन करें। छवि को उस आकार में छोटा करने के लिए अगली संपत्ति स्केल किए गए सामग्री को जांचना सुनिश्चित करें, जिसे आप देखना चाहते हैं।

यह सब कुछ है, छवि अब दिखाई देगी।

0

एक खिड़की-विजेट पर पेंट करने के QPainter और QImage का उपयोग करना (QMainWindow) (सिर्फ एक और तरीका)

class MainWindow : public QMainWindow 
{  
    public: 
     MainWindow(); 
    protected: 
     void paintEvent(QPaintEvent* event) override; 

    protected: 
     QImage image = QImage("/path/to/image.jpg"); 
}; 

// for convenience resize window to image size 
MainWindow::MainWindow() 
{ 
    setMinimumSize(image.size()); 
} 

void MainWindow::paintEvent(QPaintEvent* event) 
{ 
    QPainter painter(this); 
    QRect rect = event->rect(); 
    painter.drawImage(rect, image, rect); 
} 


int main(int argc, char** argv) 
{ 
    QApplication a(argc, argv); 

    MainWindow mainWindow; 
    mainWindow.show(); 
    return a.exec(); 
} 
संबंधित मुद्दे