c++ - QT:QLabels 不尊重边界
问题描述
我正在创建一个非常基本的 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);
}
现在我希望这两个标签都从上到下有序显示,但我让它们彼此重叠。我究竟做错了什么?
解决方案
您需要在主窗口中创建一个小部件并将其设置为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);
}
推荐阅读
- html - 我必须使用 ActiveXObject 在 html 中打开 powerpoint 演示文稿吗
- python - 训练模型后从 Keras/Tensorflow 获取预测
- xaml - 列表视图中项目的最大高度?
- php - 客户端错误:`GET https://api.powerbi.com/v1.0/myorg/datasets` 导致 `401 Unauthorized` 响应 Power BI REST api
- python - 我有一些文件格式的数据。我想知道每行的第一个字符串是什么,并计算它们重复了多少次
- python - Python 2.7 fnmatch 不编辑文本
- reactjs - 重置所有状态后有什么方法可以调用 useEffect 钩子
- mips - C 到 MIPS 的算术运算翻译
- spring - 我应该如何控制 Liquibase 和 springboot data.sql 之间的执行顺序?
- python - 从父类下定义的函数更新多页 GUI 中的 tkinter 进度条