【发布时间】:2015-04-13 00:06:43
【问题描述】:
我尝试构建一个带有单个文本标签的无框窗口,并根据所选语言和周围的边界更改文本。此窗口应始终具有尽可能小的尺寸。这是到目前为止我尝试过的没有任何配置的简单代码。
QMainWindow* clientIDDisplay = new QMainWindow(0, Qt::Window
| Qt::FramelessWindowHint
| Qt::WindowStaysOnTopHint);
QGroupBox* mainWidget = new QGroupBox(clientIDDisplay);
mainWidget->setStyleSheet(stylesheetGroupBox);
QLabel* labelClientID = new QLabel(clientIDDisplay);
labelClientID->setStyleSheet(stylesheetLabel);
labelClientID->setText("Client");
QHBoxLayout* mainLayout = new QHBoxLayout(clientIDDisplay);
mainLayout->addWidget(labelClientID);
mainWidget->setLayout(mainLayout);
clientIDDisplay->setCentralWidget(mainWidget);
clientIDDisplay->show();
这显示了窗口,但它没有应有的那么小,还有很多空间。
使用setMinimumSize(0,0) 没有帮助。
我想我理解使用QSizePolicy 在一个布局中根据彼此调整小部件的大小,如本文layout mechanism 中所述。但它是组框中的单个小部件,不知道哪个小部件会导致该窗口的尺寸变大。
使用setFixedSize(),我可以获得更小的尺寸,但我不知道设置正确尺寸的方法。标签的width() 不是显示文本的宽度。
谁能解释我必须设置哪些配置才能获得我的简约窗口?我确定我忽略了一些东西,但我被卡住了。
【问题讨论】:
标签: qt size qwidget qmainwindow