QT:QLabels 不尊重边界
QT: QLabels not respecting borders
我正在创建一个非常基本的 QT 应用程序,我 运行 遇到以下问题:
rasp4home::ui::MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
paletteSetup();
mTime.setText("00.22");
mTime2.setText("00.21232");
setLayout(new QBoxLayout(QBoxLayout::TopToBottom));
layout()->addWidget(&mTime);
layout()->addWidget(&mTime2);
}
void rasp4home::ui::MainWindow::paletteSetup()
{
setAutoFillBackground(true);
auto palette = QApplication::palette();
palette.setColor(QPalette::All, QPalette::Background, backgroundColor);
palette.setColor(QPalette::All, QPalette::WindowText, textColor);
setPalette(palette);
}
现在我希望两个标签都按从上到下的顺序显示,但我将它们放在一起。我做错了什么?
您需要在 内部 主 window 创建一个小部件并将其设置为 centralWidget
,并在此小部件中设置您的布局。
注意:此示例是在 macOS 上完成的,因此它没有相同的命名空间。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
paletteSetup();
mTime.setText("00.22");
mTime2.setText("00.21232");
QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom);
layout->addWidget(&mTime);
layout->addWidget(&mTime2);
QWidget* mainWidget = new QWidget();
mainWidget->setLayout(layout);
// QMainWindow will free mainWidget when appropriate
setCentralWidget(mainWidget);
}
我正在创建一个非常基本的 QT 应用程序,我 运行 遇到以下问题:
rasp4home::ui::MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
paletteSetup();
mTime.setText("00.22");
mTime2.setText("00.21232");
setLayout(new QBoxLayout(QBoxLayout::TopToBottom));
layout()->addWidget(&mTime);
layout()->addWidget(&mTime2);
}
void rasp4home::ui::MainWindow::paletteSetup()
{
setAutoFillBackground(true);
auto palette = QApplication::palette();
palette.setColor(QPalette::All, QPalette::Background, backgroundColor);
palette.setColor(QPalette::All, QPalette::WindowText, textColor);
setPalette(palette);
}
现在我希望两个标签都按从上到下的顺序显示,但我将它们放在一起。我做错了什么?
您需要在 内部 主 window 创建一个小部件并将其设置为 centralWidget
,并在此小部件中设置您的布局。
注意:此示例是在 macOS 上完成的,因此它没有相同的命名空间。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
paletteSetup();
mTime.setText("00.22");
mTime2.setText("00.21232");
QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom);
layout->addWidget(&mTime);
layout->addWidget(&mTime2);
QWidget* mainWidget = new QWidget();
mainWidget->setLayout(layout);
// QMainWindow will free mainWidget when appropriate
setCentralWidget(mainWidget);
}