我正在尝试使用Qt向主窗口添加标签。这是一段代码:
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget Main_Window;
QPixmap Image;
Image.load("1837.jpg");
QLabel i_label;
i_label.setPixmap(Image);
i_label.show();
QPushButton Bu_Quit("Quit", &Main_Window);
QObject::connect(&Bu_Quit, SIGNAL(clicked()), qApp, SLOT(quit()));
Main_Window.show();
return app.exec();
}
我一直很难弄清楚如何正确地将QLabel
添加到QWidget
,我尝试使用此方法将Main_Window
设置为主要小部件: app.setMainWidget(Main_Window)
,标签仍在窗外。那么如何使用Qt将标签放入小部件?
答案 0 :(得分:7)
hamza,这段代码对我来说很好:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget Main_Window;
QLabel i_label("Start", &Main_Window);
//i_label.setPixmap(QPixmap("1837.jpg"));
QPushButton Bu_Quit("Quit" , &Main_Window);
QObject::connect(&Bu_Quit , SIGNAL(clicked()), qApp , SLOT(quit()));
QVBoxLayout *vbl = new QVBoxLayout(&Main_Window);
vbl->addWidget(&i_label);
vbl->addWidget(&Bu_Quit);
Main_Window.show();
return app.exec();
}
我评论设置图像代码以显示标签设置正确。确保您的图像有效(否则您将看不到文本)。这里的诀窍是你需要使用qt布局,如QVBoxLayout
答案 1 :(得分:1)
将标签添加到布局窗口小部件,并将窗口布局设置为该布局。
设计说明:最好创建自己的MainWindow类,例如继承自QMainWindow
,并从内部进行设计。
甚至更好,请使用QtCreator
。
答案 2 :(得分:0)
您可以尝试:
QWidget window;
QImage image("yourImage.png");
QImage newImage = image.scaled(150, 150, Qt::KeepAspectRatio);
QLabel label("label", &window);
label.setGeometry(100, 100, 100, 100);
label.setPixmap(QPixmap::fromImage(newImage));
window.show();
这样你甚至可以决定放置标签的位置并选择图像尺寸。