在 class 中创建 QWidget
Creating QWidget in a class
我正在尝试在我的 class 中创建一个 window。
我查看了文档:http://doc.qt.io/qt-5/qtwidgets-tutorials-widgets-toplevel-example.html
QApplication a(argc, argv);
QWidget window;
window.show();
return a.exec();
当代码在 main.cpp 中时,这确实显示了 window。
但我想在其他 class 中创建 window。
当我使用该行时:
QWidget window;
window.show();
它没有给我 window,程序也没有退出。
那么我们如何在自己的QT中创建一个widget呢class?
这是一个初始化和自定义的示例 QWidget
:
#include <QWidget>
void FileManager::initializeMyWidget()
{
QWidget *myWidget= new QWidget();
myWidget->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
myWidget->setWindowFlags(windowFlags() | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
QIcon iconMyWidget(":/Images/Images/image.png");
myWidget->setWindowIcon(iconMyWidget);
QHBoxLayout *mainLayout = new QHBoxLayout;
myWidget->setLayout(mainLayout);
}
现在调用函数并显示小部件:
initializeMyWidget();
myWidget->show();
你应该像这样创建一个 Qframe class.h
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = nullptr);
private:
QLabel *createLabel(const QString &text);
};
#endif
和.cpp
#endif
QGridLayout *layout = new QGridLayout;
layout->addWidget(createLabel(tr("LEVEL")), 2, 0);
setLayout(layout);
setWindowTitle(tr("Tetrix"));
resize(50, 370);
}
QLabel *Window::createLabel(const QString &text)
{
QLabel *label = new QLabel(text);
label->setAlignment(Qt::AlignHCenter | Qt::AlignCenter);
return label;
}
我正在尝试在我的 class 中创建一个 window。
我查看了文档:http://doc.qt.io/qt-5/qtwidgets-tutorials-widgets-toplevel-example.html
QApplication a(argc, argv);
QWidget window;
window.show();
return a.exec();
当代码在 main.cpp 中时,这确实显示了 window。
但我想在其他 class 中创建 window。 当我使用该行时:
QWidget window;
window.show();
它没有给我 window,程序也没有退出。
那么我们如何在自己的QT中创建一个widget呢class?
这是一个初始化和自定义的示例 QWidget
:
#include <QWidget>
void FileManager::initializeMyWidget()
{
QWidget *myWidget= new QWidget();
myWidget->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
myWidget->setWindowFlags(windowFlags() | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
QIcon iconMyWidget(":/Images/Images/image.png");
myWidget->setWindowIcon(iconMyWidget);
QHBoxLayout *mainLayout = new QHBoxLayout;
myWidget->setLayout(mainLayout);
}
现在调用函数并显示小部件:
initializeMyWidget();
myWidget->show();
你应该像这样创建一个 Qframe class.h
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = nullptr);
private:
QLabel *createLabel(const QString &text);
};
#endif
和.cpp
#endif
QGridLayout *layout = new QGridLayout;
layout->addWidget(createLabel(tr("LEVEL")), 2, 0);
setLayout(layout);
setWindowTitle(tr("Tetrix"));
resize(50, 370);
}
QLabel *Window::createLabel(const QString &text)
{
QLabel *label = new QLabel(text);
label->setAlignment(Qt::AlignHCenter | Qt::AlignCenter);
return label;
}