Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在主窗口中显示QImage_C++_Qt_User Interface_Qpixmap_Qlabel - Fatal编程技术网

C++ 在主窗口中显示QImage

C++ 在主窗口中显示QImage,c++,qt,user-interface,qpixmap,qlabel,C++,Qt,User Interface,Qpixmap,Qlabel,我试图用Qt显示一个图像,我可以让它出现在一个单独的窗口中,但我不能让它出现在主窗口中 Qt_first w; w.show(); 这显示了我在Qt designer中设计的窗口,如何访问我放在该窗口的QWidget(centralWidget)中的Qlabel(Image_Lbel) 我生成了一个正确显示的条纹图像,只是不在正确的窗口内 QSize size = QSize(640,480); QImage::Format format = QImage::Format_ARGB32; QI

我试图用Qt显示一个图像,我可以让它出现在一个单独的窗口中,但我不能让它出现在主窗口中

Qt_first w;
w.show();
这显示了我在Qt designer中设计的窗口,如何访问我放在该窗口的QWidget(centralWidget)中的Qlabel(Image_Lbel)

我生成了一个正确显示的条纹图像,只是不在正确的窗口内

QSize size = QSize(640,480);
QImage::Format format = QImage::Format_ARGB32;
QImage image = QImage::QImage(size, format);
//generate
QLabel myLabel;
myLabel.setPixmap(QPixmap::fromImage(image));
myLabel.show();

我感觉可能是因为我没有包含创建者或名称空间的文件。我想你的
标签是独立显示的。将标签的父级设置为主窗口。然后,您的
标签将显示在主窗口中

所以使用

QLabel *myLabel = new QLabel(this); // sets parent of label to main window 
myLabel->setPixmap(QPixmap::fromImage(image));
myLabel->show();

您还可以使用函数在主窗口内移动标签。

如果要从
Qt\u first
类外部设置标签,则需要添加一个方法来完成此操作。例如(在qt_first.cpp中,相应地更改qt_first.h):


ui
在本例中,是表示您使用Qt设计器创建的ui的对象。

我使用了这两种答案的组合,这要归功于两者

Qt_first w;  // the UI I made with Qt creator
QLabel *myLabel = w.getImageLabel();
myLabel->setPixmap(QPixmap::fromImage(image));
w.show();
在Qt_第一类中包含以下内容

QLabel* Qt_first::getImageLabel(){  
    QLabel *myLabel = ui.Image_Label;
    return myLabel;
}
QLabel* Qt_first::getImageLabel(){  
    QLabel *myLabel = ui.Image_Label;
    return myLabel;
}